Oracle 3강 - 데이터베이스 구축 과정

데이터베이스 구축 과정

  1. 요구사항 분석
  2. 데이터 모델링
    모델링에는 개념적 - 논리적 - 물리적 모델링 3단계가 있다.
  3. 테이블 설계
  4. ER-win(설계도구)을 이용한 모델링
  5. 한국건설의 물리적 DB모델링
  6. DB스키마 생성(테이블을 만드는 것)

1~6 순서로 진행 : 포워드 엔지니어링
6번 -> 2번 : 리버스 엔지니어링

13개의 다이어그램으로 시스템을 분석

공통적인 개발방법 : 그림을 그려서 전달하는 방법

  1. 요구사항 분석
    <개념적 모델>
    테이블을 구축 시 명사는 개체(entity), 동사는 관계(relationship)가 됨.
    ex) 회원이 상품을 구매하다 --> 명사 : 회원, 상품 (entity) / 동사 : 구매하다 (relation)
    관계를 설정할 때는 동사가 반드시 두 개의 명사와 연관됨.

개념적 모델에서 엔터티를 만들어야 함.

  • 개체(entity), 속성(attribute), 관계(Relationship)를 뽑아내야 하는 단계
  • 엔터티(특징을 지을 수 있는 속성을 가짐) -> 테이블이 될 객체

정제방법 : 한 엔터티(사업장, 사원 등)를 언급한 것끼리 모으기

배타적관계 : 한 속성이 다른 속성의 반대일 때(ex. 공사중, 공사완료)
슈퍼타입(전체 집합) <-> 서브타입(집합의 부분을 이루는 교집합)

  1. 데이터 모델링
    attribute에 또 다른 attribute가 포함될 수 없다.
    E-R 다이어그램에서
    개체(entity) : 사각형
    속성(attribute) : 원
    관계(relation) : 마름모

다대다 형식으로 표현됨. - 개념적 모델링에서만 허용, 다음 단계에서는 일대다 형식으로 바꿔야 함.

규칙
1) 모든 entity는 relation으로 변경한다. entity의 속성을 relation의 속성으로 바꾼다.
2.) 다대다 관계는 relation으로 바꾼다. 일대다의 관계는 표시하지 않는다.
일대다(1:N)의 관계는 1측이 부모가 되고(기본키) N측이 자식(외래키)이 됨. : 식별자관계

식별관계 : 부모테이블의 기본키가 자식테이블의 기본키가 되는 것(직선으로 연결)
비식별관계 : 그 외(점선으로 연결)

<함수종속성>
결정자와 종속자
y = f(x)에서 x가 결정자, y 는 종속자
결정자 : 종속자를 변화시킬 수 있는 요소
종속자 : 결정자로 인해 변화되는 요소

이행 함수적 종속성
x -> y, y -> z 라는 종속관계가 있을 때, x -> z가 성립될 때를 이행 함수적 종속이라고 한다.

  1. 테이블 명세서
    컬럼ID,를 정확한 명칭, 알아보기 쉬운 명칭으로 정하기(공공데이터포털_행정표준용어를 사용)
    NULL칸의 N.N의 의미 : NOT NULL

[실습]

-(명령구분)
.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 : 특정 데이터를 찾아봐서 없으면 삽입, 있으면 수정하거나 삭제하게 만드는 명령어

  1. CREATE
  • 오라클 객체를 생성할 때 사용
  • 테이블 생성 시 CREATE TABLE 명령 사용

(사용형식)

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));

좋은 웹페이지 즐겨찾기