관계형 DB 설계 과정 개념적 설계(E-R 모델) - E-R Diagram E-R 모델을 이용해서 E-R 다이어그램을 만든다. 논리적 설계 Step1 - 매핑 룰 논리적 설계 Step2 - 정규화(3NF or BCNF) 물리적 데이터 모델링 데이터베이스를 하드디스크와 같은 저장장치에 저장할 때 어떤 식으로 저장하여 테이블 형태로 사용자들에게 보여줄 것인가를 결정 개체 관계 모델(E-R Model) 개체-관계(Entity-Relationship) 모델 현실 세계의 많은 데이터 중에서 관심의 대상이 되는 데이터를 언어보다 좀 더 형식화된 다이어그램을 사용하여 표현한 것 개체들 간의 관계를 나타냄. 개체 선택: 요구사항 명세서가 필요. 여기서 명사가 해당됨. 관계: 요구사항 명세서에서 동사에 해당됨. 속성: ..
관계형 데이터베이스 설계 설계 1이 더 좋다! 설계2의 경우 불필요한 데이터 중복이 있다. 설계 1은 데이터 중복이 있으나 필요한 데이터 중복이다. 설계1 학생 = {학번, 이름, 주소}, PK = {학번} 수강 = {학번, 과목번호, 성적}, PK = {학번, 과목번호}, FK = {학번} 설계2 학생_수강 = {학번, 과목번호, 이름, 주소, 성적} PK = {학번, 과목번호} 불필요한 중복의 문제점 디스크 공간을 낭비한다. Update가 아주 복잡해진다. 불필요한 중복이 생겼을 때의 해결책 스키마 나누기(Decomposition) Decomposition 할 때 고려할 점들은? 가짜 투플을 만들지 않는 나누기(필수), 함수적 종속을 유지하는 나누기(선택) 가짜 투플: 나뉜 두 테이블을 자연 조인했을..
에러 처리 에러 처리 방법 PL/SQL 블록 내의 SQL문이 정상적으로 실행되지 못할 때 에러가 발생한다. 에러가 발생하면 EXCEPTION절에 의해 처리할 수 있다. 자주 발생하는 에러처리기는 오라클 사에서 기본적으로 제공하며, 자주 발생하지 않는 에러는 사용자가 직접 정의할 수 있다. Predefined (Internal) Exception UnDefined Exception User Defined Internal Exception Exception Trapping Function 미리 정의된 에러 처리 EXCEPTION 절은 자바의 try-catch 문과 같음. DECLARE BEGIN EXCEPTIION WHEN [예외조건-1] THEN [처리문장-1]; WHEN [예외조건-2] THEN [처리문..
PL/SQL 개요 set echo on set serveroutput on: 출력을 위한 옵션 SQL의 장점과 단점 장점 사용자가 이해하기 쉬운 단어로 구성 쉽게 배울 수 있다. 복잡한 로직을 간단하게 작성할 수 있다. ANSI에 의해 문법이 표준화되어 있다. 단점 반복처리를 할 수 없다.(Loop) 비교처리를 할 수 없다.(IF) Error 처리를 할 수 없다.(예외처리) SQL문을 캡슐화 할 수 없다. 변수 선언을 할 수 없다. 실행할 때 마다 분석작업 후 실행 Network Traffic을 유발한다. PL/SQL의 생성과 실행 반복 처리를 할 수 있다.(Loop) 비교 처리를 할 수 있다.(IF) Error 처리를 할 수 있다.(예외 처리) SQL문을 캡슐화 할 수 있다.(데이터의 보안 및 무결성)..
트랜잭션 자료 항목을 읽고 또한 때로는 값을 고치기도 하는 프로그램 처리(수행) 단위이다. 트랜잭션 시작. select ... select ... insert ... delete ... select ... delete ... 트랜잭션 끝 트랜잭션의 예 은행 돈을 찾는다, 돈을 넣는다, 돈을 옮긴다, 새로 계좌를 만든다, 있던 계좌를 없앤다. 비행기 좌석을 예약한다, 취소한다, 날짜를 바꾼다, 편 번호(flight number)를 바꾼다. 기차 좌석을 예약한다, 취소한다, 열차 번호를 바꾼다. 주식 주식을 사는 일, 파는 일, 사거나 파는 일 취소 ✅ 데이터베이스에서는 일관성이 굉장히 중요하다. 트랜잭션의 네 가지 특성: ACID 원자성(atomicity) All or Nothing 한 트랜잭션 내에 있는..
sql문의 분류 DDL: Data Definition Language Create문: 테이블 및 각종 객체를 새로 만든다. Drop문: 테이블 및 각종 객체를 없앤다. Alter문: 테이블 및 각종 객체의 구조를 바꾼다. DML: Data Manipulation Language Insert문: 새로운 레코드 삽입 Delete문: 레코드 삭제 Update문: 레코드 내의 특정값을 변경 DCL: Data Control Language Commit: 트랜잭션 완료 Roll Back: 다시 돌아감 DQL: Data Query Language Select DQL을 따로 정의하지 않는 DML로 봄. 테이블 스키마는 속성의 집합으로 표현이 된다. Create and Drop 자료형(Data type) 테이블을 생성할..