이전 포스팅에서 데이터베이스 부분을 모두 학습한 것이라 착각을 했다...😂 실질적으로 실무에 뛰어들게 된다면 데이터베이스를 프로그래밍 언어로 다루는 것도 중요하겠지만, 데이터베이스를 설계하는 역량도 중요할 것이다. 이번 포스팅에서는 데이터베이스를 설계하는 법에 대해서 다룰 것이다.
[20.12.27]
> 데이터베이스 설계
데이터베이스 설계순서 :
1. 요구분석 : 데이터베이스가 사용될 용도를 파악하는것이다. 데이터베이스 사용자에 따른 수행업무와 필요한 데이터의 종류, 용도, 처리형태, 제약조건 등을 수집하여 요구사항 명세서를 작성한다.
2. 개념적 설계(Concept Design) : 정보의 구조를 얻기 위하여 현실세계에 대한 인식을 추상적 개념으로 표현하는 과정이며 ERD(Entity Relation Diagram)를작성한다.
3. 논리적 설계(Logical Design) : 현실세계에서 발생하는 자료를 컴퓨터가 이해하고 처리할 수 있는 물리적 저장자치에 저장할 수 있도록 변환하기 위해 특정 DBMS가 지원하는 논리적 자료구조로 변환시키는 과정이다
4. 물리적 설계(Physical Design) : 논리적 구조로 표현된 데이터를 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정이다.
데이터베이스의 설계 원리 :
- 테이블롤 표현하는 과정에서 정보의 손실이 없도록 한다.
- 가능한한 데이터의 중복은 피하도록 한다.
- 이상이 발생하지 않도록 정규화 한다
- 독립된 관계마다 테이블을 만든다.
ERD(Entity Relation Diagram) 작성 :
- ERD 표준기호 :
*실습문제*
>> 작성한 테이블
CREATE TABLE professortbl (
professor_id VARCHAR(20) PRIMARY KEY
, professor_name VARCHAR(20) NOT NULL
, professor_major VARCHAR(20) NOT NULL
, professor_belong VARCHAR(30) NULL
);
CREATE TABLE studenttbl (
student_id VARCHAR(20) PRIMARY KEY
, student_name VARCHAR(20) NOT NULL
, student_addr VARCHAR(20) NOT NULL
, student_grade INT(1) NOT NULL
, professor_id VARCHAR(20) NOT NULL
, FOREIGN KEY (professorr_id) REFERENCES professortbl(professor_id)
);
CREATE TABLE lecturetbl (
lecture_id VARCHAR(20) PRIMARY KEY
, lecture_name VARCHAR(20) NOT NULL
, lecture_credit INT(1) NOT NULL
, lecture_time VARCHAR(20) NOT NULL
, lecture_place VARCHAR(20) NOT NULL
, professor_id VARCHAR(20) NOT NULL
, FOREIGN KEY (professorr_id) REFERENCES professortbl(professor_id)
);
CREATE TABLE enrolltbl (
enroll_num INT AUTO_INCREMENT PRIMARY KEY
, record FLOAT(20) NOT NULL
, student_id VARCHAR(20) NOT NULL
, lecture_id VARCHAR(20) NOT NULL
, FOREIGN KEY (student_id) REFERENCES studenttbl(student_id)
, FOREIGN KEY (lecture_id) REFERENCES lecturetbl(lecture_id)
);
*실습문제*
제약조건
- 하나의 기자재는 한 연구실에서 관리한다.
- 한 연구실은 여러 기자재를 관리한다.
- 한명의 연구원은 한 연구실에만 소속될 수 있다.
- 하나의 연구실은 여러 연구원으로 구성된다.
- 한명의 연구원이 여러 기자재를 사용할 수 있다
- 하나의 기자재는 여러 연구원이 사용할 수 있다.
위 제약조건을 만족하는 ERD를 그리시오.
>> 작성한 ERD
여기까지 해서 과정에서의 모든 데이터베이스 학습은 마무리 되었다. 20.12.27일 까지 배운 파이썬 프로그래밍, 데이터베이스를 이용해서 쇼핑몰 시스템을 만드는 프로젝트를 진행하였다. 추후 이 프로젝트 관련한 포스팅을 하도록 하겠다.
'클라우드 아키텍트 양성과정' 카테고리의 다른 글
[TIL.21.1.7 ~ 21.1.14] HTML 실습문제 (0) | 2021.02.01 |
---|---|
[TIL.21.1.7 ~ 21.1.14]인터넷과 웹 (0) | 2021.02.01 |
[TIL.20.12.22~28] Python과 MySQL (0) | 2021.01.27 |
[TIL.20.12.22~28]데이터베이스 와 MySQL -2 (0) | 2021.01.26 |
[TIL.20.12.22~28]데이터베이스 와 MySQL -1 (0) | 2021.01.26 |
댓글