관리 메뉴

개발하는 동그리

[SQL] ERD (Entity Relationship Diagram)설계 본문

IT 정보/기타 정보

[SQL] ERD (Entity Relationship Diagram)설계

개발하는 동그리 2022. 6. 10. 17:06
반응형

데이터 모델링 이란!?

  • 정보 시스템 구축을 위해 내용을 분석하고 약속된 표기법으로 표현하는 것
  • 모델링을 통해 데이터베이스를 생성하고 설계의 기초 단계

 

데이터 모델링 순서 

  1. 업무 내용 확인 
    • 업무에 필요한 데이터를 체크하는 단계
  2. 개념적 데이터 모델링
    • 데이터 간의 관계를 구상 
    • 단순한 도형 형태로 엔티티-관계 다이어그램 (ERD)를 생성
  3. 논리적 데이터 모델링
    • 엔티티-관계 다이어그램을 통해 구체화된 업무중심의 데이터 모델을 생성하는 단계
    • Key, 속성, 관계를 나타내고, 정규화 활동을 수행한다. 
    • 정규화는 데이터의 일관성 확보, 중복을 제거하고 신뢰성 있는 데이터 구조를 얻는 데 있다. 
    • 단순한 도형 ERD를 테이블 형태로 구성 ( 데이터 타입, 관계, Key값 입력)
  4. 물리적 데이터 모델링
    • 최종적으로 관리할 데이터베이스를 선택하고, 실제 테이블을 생성
    • 시각적 구조를 SQL 코딩

 

ERD 란!?

데이터베이스 구조(Entity 개체와 Relationship)를 한 눈에 알아보기 쉽게 그려놓은 다이어그램

 

테이블 제약 조건

- 테이블에 부적절한 자료가 입력되지 않도록 만들어진 규칙 ( 테이블 안에서 데이터의 성격을 정의)

1. NOT NULL (column을 필드화 시킬 때 사용)

  • 사용시 해당 column에 반드시 데이터를 입력해야 함 
  • Null을 비 허용하면 N을 표시
  • Null을 허용하면 N을 미표시 

 

2. UNIQUE

  • 데이터의 유일성을 보장 (중복 불가), 자동으로 인덱스 생성
  • null 허용, primary key는 null 허용 안 함
  • 하나의 테이블에 여러 개 올 수 있다. / primary key는 하나만 존재할 수 있다.

 

3. CHECK 조건

  • 칼럼의 값을 특정 범위로 제한

 

4. DEFAULT 

  • 칼럼의 기본값 지정 ( 데이터를 입력하지 않아도 기본값 입력됨)
  • 값이 입력되면 default값은 무시됨.

 

5. PRIMARY KEY

  • UNIQUE + NOT NULL의 결합과 같음.
  • 이 키는 행을 대표하는 column의 역할을 수행하고 외래 키를 참조할 수 있는 자격이 있다. (참조 무결성)
  • UNIQUE와 마찬가지로 자동 인덱스 생성

 

6. FOREIGN KEY 

  • 기본키를 참조하는 column or column의 집합 (외래 키는 기본키나 유니크가 아니면 생성 제약)
  • 외래 키를 가지는 칼럼의 데이터형은 참조하는 기본키의 칼럼과 데이터 형이 일치해야 한다. ( 어기면 참조 무결성 제약에 의해 테이블 생성 불가 )
  • 외래 키에 의해 참조되고 있는 기본키는 삭제가 불가능하다. 
  • on update cascade 라 하면 기본키가 수정될 경우 외래 키도 같이 수정된다는 말
  • on delete cascade 라 하면 연산자와 함께 정의된 외래 키의 데이터는 기본키가 삭제될 때 같이 삭제된다. 

 

: 데이터 베이스에 존재하는 모든 테이블의 정보 확인
ex) SHOW TABLES

: user 테이블의 구조 확인
ex) DESCRIBE user;

: user 테이블에 존재하는 모든 column을 포함한 데이터 확인
ex) SELECT * FROM user;

:user 테이블에 존재하는 모든 데이터에서 name column만 확인
ex) SELECT user.name FROM user;

 

https://dbdiagram.io/home

 

dbdiagram.io - Database Relationship Diagrams Design Tool

 

dbdiagram.io

 

 

반응형

'IT 정보 > 기타 정보' 카테고리의 다른 글

[Cloud] 배포 기본 개념  (3) 2022.08.02
[SQL] 데이터 베이스 정규화  (8) 2022.06.13
[SQL] 명령어 모음  (9) 2022.06.09
[SQL] 소개  (8) 2022.06.09
IntelliJ Plugin 추천 - (5가지)  (13) 2022.05.16