본문 바로가기

웹 개발/DBMS

[Web_DBMS] 03

무결성

- 데이터의 정확성, 일관성, 유효성이 유지되는 것.

(1) 정확성 : 데이터는 애매하지 않아야 한다.

(2) 일관성 : 각 사용자가 일관된 데이터를 볼 수 있도록 해야 한다.

(3) 유효성 : 데이터가 실제 존재하는 데이터여야 한다.

 

1. 개체 무결성

- 모든 테이블은 PK가 존재해야 한다.

 

2. 참조 무결성

- 두 테이블의 데이터가 항상 일관된 값을 가지도록 유지하는 것.

 

3. 도메인 무결성

- 컬럼의 타입, NULL값의 허용 등에 대한 사항을 정의하고, 올바른 데이터가 입력되었는 지를 확인하는 것

 


 

● 모델링(기획)

- 추상적인 주제를 RDBMS에 맞게 설계하는 것.

 

1. 요구사항 분석

- 회원, 주문, 상품 : 3가지를 관리하고자 한다.

 

 

2. 개념적 설계(개념 모델링)

 

 

3. 논리적 설계(논리 모델링)

 

 

4. 물리적 설계(물리 모델링)

 

 

 

5. 구현

 

 

 

실습(DDL(1))

1. 테이블 생성

※ 문제

/*
 * 동물 테이블 생성
 * 고유 번호
 * 종류
 * 나이
 * 먹이 VARCHAR2()
*/

 

 

- 코드

CREATE TABLE TBL_ANIMAL(
	ANIMAL_NUMBER NUMBER,
	ANIMAL_TYPE VARCHAR2(500),
	ANIMAL_AGE NUMBER(3),
	ANIMAL_FEED VARCHAR2(500)
);

 

 

 

2. 테이블 수정

- 제약조건 추가(PK)

ALTER TABLE TBL_ANIMAL ADD CONSTRAINT PK_ANIMAL PRIMARY KEY(ANIMAL_NUMBER);

 

 

- 제약조건 삭제(PK)

ALTER TABLE TBL_ANIMAL DROP CONSTRAINT PK_ANIMAL;

 

 

- 컬럼 추가(성별 CHAR(1))

ALTER TABLE TBL_ANIMAL ADD(ANIMAL_GENDER CHAR(1));

 

 

- 컬럼 이름 수정(ANIMAL_TYPE을 ANIMAL_KIND로 수정)

ALTER TABLE TBL_ANIMAL RENAME COLUMN ANIMAL_TYPE TO ANIMAL_KIND;

 

 

- 컬럼 삭제(성별)

ALTER TABLE TBL_ANIMAL DROP COLUMN ANIMAL_GENDER;

 

 

- 컬럼 수정(먹이 컬럼의 타입을 NUMBER로 수정)

ALTER TABLE TBL_ANIMAL MODIRY(ANIMAL_FEED NUMBER);

 

 

 

3. 테이블 삭제

DROP TABLE TBL_ANIMAL;

 

 

 

 

실습(DDL(2))

1. 테이블 생성

※ 문제

/*
 * 학생 테이블 생성
 * 	학생 번호
 * 	학생 아이디
 * 	학생 이름
 * 	전공
 * 	성별-CHAR
 *	생년월일 
*/
/*<조건 1> STUDENT_GENDER : 값을 추가하지 않으면 F, NULL을 허용하지 않음, 성별은 M 또는 F만 가능*/
/*<조건 2> STUDENT_BIRTH : 1987년생 이후 출생자만 가능*/

 

 

- 코드

/*CONSTRAINT 명령어로 제약조건을 추가할 때에는 반드시 이름을 작성해야 한다.*/
/*제약조건의 이름을 작성하고 싶지 않다면 CONSTRAINT를 작성하면 안된다.*/
CREATE TABLE TBL_STUDENT(
	STUDENT_NUMBER NUMBER,
	STUDENT_ID VARCHAR2(500),
	STUDENT_NAME VARCHAR2(500),
	STUDENT_MAJOR VARCHAR(500),
	STUDENT_GENDER CHAR(1) DEFAULT 'F' NOT NULL CHECK(STUDENT_GENDER IN('M', 'F')),
	STUDENT_BIRTH DATE CONSTRAINT BAN_BIRTH CHECK(STUDENT_BIRTH >= TO_DATE('1988-01-01', 'YYYY-MM-DD'))
);

 

 

 

2. 테이블 수정

- PK 추가(학생 번호로 설정)

ALTER TABLE TBL_STUDENT ADD CONSTRAINT PK_STUDENT PRIMARY KEY(STUDENT_NUMBER);

 

 

- 컬럼 이름 수정(STUDENT_ID를 STUDENT_CODE로 수정)

ALTER TABLE TBL_STUDENT RENAME COLUMN STUDENT_ID TO STUDENT_CODE;

 

 

- 컬럼 추가(애인 유무 컬럼 추가)

ALTER TABLE TBL_STUDENT ADD(STUDENT_COUPLE CHAR(1));

 

 

- UNIQUE KEY 추가(UNIQUE KEY : 중복은 안되지만 NULL은 허용한다.)

ALTER TABLE TBL_STUDENT ADD CONSTRAINT UK_STUDENT UNIQUE(STUDENT_CODE);

 

 

 

3. 테이블 삭제

DROP TABLE TBL_STUDENT;

 

 

 

'웹 개발 > DBMS' 카테고리의 다른 글

[Web_DBMS] 06  (0) 2022.04.04
[Web_DBMS] 05  (0) 2022.04.03
[Web_DBMS] 04  (0) 2022.04.02
[Web_DBMS] 02  (0) 2022.03.31
[Web_DBMS] 01  (0) 2022.03.30