데이터베이스 구축 과정
1~6 순서로 진행 : 포워드 엔지니어링
6번 -> 2번 : 리버스 엔지니어링
13개의 다이어그램으로 시스템을 분석
공통적인 개발방법 : 그림을 그려서 전달하는 방법
개념적 모델에서 엔터티를 만들어야 함.
정제방법 : 한 엔터티(사업장, 사원 등)를 언급한 것끼리 모으기
배타적관계 : 한 속성이 다른 속성의 반대일 때(ex. 공사중, 공사완료)
슈퍼타입(전체 집합) <-> 서브타입(집합의 부분을 이루는 교집합)
다대다 형식으로 표현됨. - 개념적 모델링에서만 허용, 다음 단계에서는 일대다 형식으로 바꿔야 함.
규칙
1) 모든 entity는 relation으로 변경한다. entity의 속성을 relation의 속성으로 바꾼다.
2.) 다대다 관계는 relation으로 바꾼다. 일대다의 관계는 표시하지 않는다.
일대다(1:N)의 관계는 1측이 부모가 되고(기본키) N측이 자식(외래키)이 됨. : 식별자관계
식별관계 : 부모테이블의 기본키가 자식테이블의 기본키가 되는 것(직선으로 연결)
비식별관계 : 그 외(점선으로 연결)
<함수종속성>
결정자와 종속자
y = f(x)에서 x가 결정자, y 는 종속자
결정자 : 종속자를 변화시킬 수 있는 요소
종속자 : 결정자로 인해 변화되는 요소
이행 함수적 종속성
x -> y, y -> z 라는 종속관계가 있을 때, x -> z가 성립될 때를 이행 함수적 종속이라고 한다.
[실습]
-(명령구분)
.SELECT 검색
.DDL(DATA DEFINITION LANGUAGE) 데이터 정의어 : CREAT, ALTER, DROP
.DLC(DATA CONTROL LANGUAGE) 데이터 제어어 : COMMIT, ROLLBACK, SAVEPOINT, REVOKE
.DML(DATA MANIPULATION LANGUAGE) : INSERT, UPDATE, DELETE, MERGE
CREATE : 객체를 만드는 명령어, (CREATE 객체의 종류 / CREATE 테이블 테이블명)
DROP : 객체를 없애는 명령어
ALTER : 구조를 변경하는 명령어
COMMIT : 하드디스크에 연결하여 저장하는 명령어(입력, 수정, 삭제 시 검토작업 수행 후 커밋)
ROLLBACK : 트렌젝션을 취소하는 명령어, 가장 최근에 커밋된 상태로 바뀜.(실행취소 명령어가 아님)
SAVEPOINT : 일정 구간까지만 저장하는 명령어
GRANT : 권한 부여할 때 쓰는 명령어
INSERT : 자료를 삽입할 때 쓰는 명령어
UPDATE : 자료를 갱신할 때 쓰는 명령어
DELETE : 자료를 지울 때 명령어
MERGE : 특정 데이터를 찾아봐서 없으면 삽입, 있으면 수정하거나 삭제하게 만드는 명령어
(사용형식)
CREATE TABLE 테이블명(
컬럼명1 데이터타입[(크기)] [NOT NULL] [DEFAULT 값][,]
컬럼명2 데이터타입[(크기)] [NOT NULL] [DEFAULT 값][,]
:
컬럼명N 데이터타입[(크기)][NOT NULL] [DEFAULT 값][,]
[CONSTRAINT 기본키설정명 PRIMARY KEY (컬럼명[,컬럼명,...])][,]
[CONSTRAINT 외래키설정명 FOREIGN KEY (컬럼명[,컬럼명,...])]
REFERENCES 테이블명(컬럼명[,컬럼명,...]) -원본 테이블명
[CONSTRAINT 외래키설정명 FOREIGN KEY (컬럼명[,컬럼명,...])]
REFERENCES 테이블명(컬럼명[,컬럼명,...]) );
컬럼명1~N까지는 각각 다른 컬럼명이 나와야 한다.
Oracle에서 취급하는 데이터타입 : 숫자, 문자열, 날짜, 2진수(사진, 동영상 등)
Table을 만들 때 테이블명을 먼저 만들어줌 -> Table의 약자 : TBL
Char 고정길이표현타입
varChar 가변길이표현타입 - 오라클에서는 varChar2를 사용
[NOT NULL] : NULL을 허용하지 않는 컬럼
Null값이 들어가면 +,-,*,/ 해도 모두 Null이 됨.
Oracle에서는 값을 입력하지 않으면 무조건 Null값이 들어감.
[DEFAULT 값] : 사용자가 입력하지 않았을 때 들어가는 기본 값.
한 컬럼이 끝나면 [,]가 와야함.
CONSTRAINT(제약사항) : 기본키, 외래키를 설정할 때 쓰임. 중복되는 설정명이 와서는 안 됨.
외래키가 두 개 이상일 때, CONSTRAINT도 두 번 이상 써줘야 한다.
사용 예) 다음 자료를 참고하여 사원테이블을 생성하시오.
테이블명 : EMPLOYEE
---------------------------------------------------------------
컬럼명 데이터타입 크기 NULLABLE PK/FK
---------------------------------------------------------------
EMP_ID CHAR 5 N.N PK
EMP_NAME VARCHAR2 30 N.N
EMP_ADDR VARCHAR2 100
DEPT_NAME VARCHAR2 50
----------------------------------------------------------------
답)
CREATE TABLE EMPLOYEE(
EMP_ID CHAR(5) NOT NULL,
EMP_NAME VARCHAR2(30) NOT NULL,
EMP_ADDR VARCHAR2(100),
DEPT_NAME VARCHAR2(50),CONSTRAINT pk_employee PRIMARY KEY(EMP_ID));