- DB: 데이터를 저장하는 공간
- DBMS: DB를 관리하는 시스템
- 데이터베이스 모델링: 데이터베이스를 설계하는 과정
- 데이터를 잘 분류해서 저장하는 방안을 고려하는 과정
- 잘 분류해두면 데이터를 쉽게 찾을 수 있고,
- 잘 분류해두면 데이터를 쉽게 삭제할 수 있고,
- 잘 분류해두면 데이터를 쉽게 수정할 수 있다
- 데이터의 중복을 제거한다
- 데이터의 무결성을 보장한다
- 데이터의 일관성을 보장한다
- RDBMS(Relational Database Management System) : 관계형 데이터베이스 관리 시스템
- 관계형 데이터베이스는 테이블(table) 형태로 구성된다
- 테이블은 열(column)과 행(row)으로 구성된다
- 열(column)은 필드(Field)라고도 한다.
- 행(row)은 레코드(Record)라고도 한다.
- MySQL, PostgreSQL, MariaDB, Oracle, MSSQL 등이 있다.
- 서비스 기획 참석이후
- 문장으로된 다양한 서비스 내용에 대해서 우선 대표적 속성(Attribute)을 추출한다
- 추출된 속성(Attribute)들을 묶어서 하나의 개체(Entity)로 분류한다
- 개체(Entity) 간의 관계(Relation)를 정의한다
- 이러한 개체(Entity)들을 묶어서 하나의 스키마(Schema)로 분류한다
- ERD : Entity Relationship Diagram
- Excel 활용 및 PK(Primary Key), FK(Foreign Key), Relation Model 만들기
- 테이블 정의서, SQL-Script 최종 생성
- Reverse Engineering
- Forward Engineering
- Schema 폴더 생성하기 : 소문자 폴더로 저장합니다
- Entity(객체)를 파일로 table 생성함 : 소문자s(복수형 명사) 로 생성함
- 속성(Attribute) 생성함 : 소문자로 칼럼 명을 생성함
- 속성 중 PK(Primary Key) : 절대 중복되지 않는다는 조건 : 자동증가 또는 유니크 속성을 부여해야 함 : 자동증가는 auto increment 속성을 부여해야 함 : 유니크 속성은 uuid 속성을 부여해야 함
- 속성 중 FK(Foreign Key) : 외래키 속성을 부여해야 함 : 다른 테이블 즉, Entity 와 관계를 연결시키는 키 : 일반적으로 다른 테이블의 PK(Primary Key)를 참조하는 속성을 부여함
- 만약 레코드 즉, 입력된 데이터가 여러개라면 : 데이터를 하나씩 배치하여서 FK(Foreign Key) 로 연결시킨다 : 만약 FK 가 여러개 배치된다면 : 새로운 표를 생성해서 각 FK 를 통해서 연결시킨다
- 꼭 엑셀을 만들지 않더라도 대응수를 파악할 수 있다
- 대응수란 하나의 테이블이 다른 테이블의 FK 활용하는 것을 나타내는 기회다
- 대응수는
1 : 1구조,1 : N구조,M : N구조 가 있다
- A 와 B 의 관계
- A 는 B 를 ~~~ 한다
- B 는 A 에 의해 ~~~ 한다
하나의 A 는한개/여러개의 B 를 ~~~ 한다하나의 B 는한개/여러개의 A 에 의해 ~~~ 한다
-
회원과 이메일의 관계를 파악해 보자
-
회원은 이메일을 소유하고 있다
-
이메일은 회원에게 소유되어 있다
-
한명의 회원은 여러개의 이메일을 소유하고 있다(1:N)
-
하나의 이메일은 한명의 회원에게 소유되어 있다(1:1)
-
최종적으로 회원 : 이메일 은
1 : N구조이다 -
N 쪽에 FK 를 부여해야 한다
-
학생과과목의 관계 -
학생은과목을 수강 한다 -
과목은학생에 의해 수강 되어진다 -
한명의
학생은 여러개의과목을 수강 한다(1:N) -
하나의
과목은 여러명의학생에 의해 수강 되어진다(1:N) -
최종적으로 학생 : 과목 은
1 : N구조이다 -
학생과 과목은
M : N구조이다 -
무조건 table 생성하고 FK 를 모은다