데이터 베이스 Database(DB) #4

이온·2023년 6월 24일
0

데이터베이스

목록 보기
4/7
post-thumbnail

1. 제약 조건

제약 조건이란?
테이블에 잘못된 데이터가 입력되는 것을 방지하기 위한 규칙 제약 조건을 통해 무결성을 지킬 수 있음

NOT NULL

널(NULL) 값 비허용
데이터를 입력하지 않으면 에러가 발생함 아무것도 명시하지 않는 경우 기본 값은 널 값 허용

UNIQUE

중복되는 값을 비허용
똑같은 값이 있으면 에러가 발생함
NULL 값은 비교가 불가능하여 중복되어도 에러가 발생하지 않음

DEFAULT

기본값을 설정
아무런 값을 지정하지 않으면 DEFAULT 값으로 설정됨

CHECK

값의 범위를 제한하여 특정 값만 허용 제한한 값이 아닌 경우 에러 발생

제약 조건 정의(CONSTRAINT)

제약 조건 이름 정의: CONSTRAINT 제약조건이름 제약조건[UNIQUE, CHECK, ...] (적용할 속성);
생성된 제약 조건 확인: SELECT * FROM information_schema.table_constraints;

제약조건추가

제약 조건 추가: ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건이름 제약조건(속성);
DEFAULT 제약 조건 수정: ALTER TABLE 테이블명 ALTER 속성 SET DEFAULT 기본값;

제약조건삭제

제약 조건 삭제: ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건이름;
DEFAULT 제약 조건 삭제: ALTER TABLE 테이블명 ALTER 속성 DROP DEFAULT

2. 키 (Key)

조건에 만족하는 튜플을 찾거나, 정렬할 때 기준이 되는 속성

• 기본키 • 외래키 • 후보키 • 대체키 • 슈퍼키

기본키 (Primary Key)

: 서로 다른 튜플을 유일하게 식별할 수 있는 기준이 되는 속성

기본키 설정: PRIMARY KEY
중복되는 값을 가질 수 없음
널 값을 가질 수 없음
테이블 당 1개만 설정

외래키 (Foreign Key)

: 다른 테이블의 기본키를 참조하는 속성으로 테이블의 관계를 정의

외래키 설정: FOREIGN KEY (참조할 속성) REFERENCES 참조되는 테이블(참조되는 속성)
참조되는 테이블의 기본키에 없는 값은 지정할 수 없음

그 외 키

•후보키: 기본키가 될 수 있는 키로 유일성과 최소성을 만족 (기본키 ⊂ 후보키)
• 대체키: 후보키 중에 기본키가 아닌 키 (대체키⊂ 후보키)
• 슈퍼키: 튜플을 식별할 수 있는 유일성은 만족하지만 최소성은 만족하지 않는 키

무결성 제약 조건

  • 개체 무결성: 기본키는 널 값과 중복된 값을 가질 수 없음
  • 참조 무결성: 외래키는 널이거나 참조되는 릴레이션의 기본키 값과 동일

• 도메인 무결성: 특정 속성값은 그 속성이 정의된 도메인에 속한 값이어야 함
• NULL 무결성: 특정 속성값은 널 값을 가질 수 없음
• 고유 무결성: 각 튜플이 가지는 속성값들은 서로 달라야 함
• 키 무결성: 테이블에 최소 한 개 이상의 키 존재

3. 데이터 모델링

데이터 모델링이란?
현실 세계에 존재하는 데이터를 데이터베이스화하는 과정

공유 킥보드를 이용하기 위해서는 회원 가입을 하고 애플리케이션을 설치해야 합니다.
그런데 공유 킥보드 브랜드가 여러 개 생기면서, 회원 가입을 해야 할 브랜드가 많아지고 관리가 어려워졌습니다. 그래서 모든 공유 킥보드를 모아서 관리하는 서비스를 만들기로 했습니다.
그 첫 번째 과정으로 데이터베이스를 설계하려고 합니다.

데이터 모델과 구성 요소

현실 세계의 데이터를 단순화, 추상화하여 표현한 모델

• 개체(Entity): 데이터로 표현하고자 하는 현실 세계의 개념이나 정보의 단위 (ex. 킥보드, 회원)
• 속성(Attribute): 개체에 대한 정보 (ex. 킥보드의 브랜드/이용 가격, 회원의 아이디/이름)
• 관계(Relationship): 개체 간의 연관성 (ex. 고객은 킥보드를 대여한다)

과정

개념적 설계: 현실 세계를 추상적 개념으로 표현하는 과정
논리적 설계: DBMS가 처리할 수 있는 데이터 구조(스키마)를 설계 물리적 설계: DBMS에 테이블을 저장할 구조를 설계

4. ER 다이어그램 (Peter Chen)

ERD, Entity-Relationship Diagram (개체-관계 다이어그램)

현실 세계의 데이터를 개체와 관계 형태의 다이어그램으로 나타내는 것 표기법: Peter Chen, IE

ERD 그리기

https://app.diagrams.net/

요구사항
• 고객은 회원 가입 시 이름, ID, PW, 전화번호, 생년월일을 입력합니다.
• 각 킥보드는 고유한 ID를 가집니다.
• 킥보드는 브랜드와 연식에 따라 기본료가 달라집니다.
• 고객이 킥보드를 대여하면 대여 상태, 대여 시간, 대여 위치를 기록해야 합니다. • 한 명의 고객은 한 번에 하나의 킥보드만 대여할 수 있습니다.
• 킥보드는 이용 1분에 대한 가격에 대한 정보를 가지며 이는 브랜드를 출시한 회사가 결정합니다.

관계 추가하기

하나의 데이터가 다른 테이블의 몇 개의 데이터와 관계를 가지는지 나타냄
N : M 관계는 테이블로 표기하며 각 개체의 기본키를 외래키로 가짐

5. ER 다이어그램 (IE)

IE (Information Engineering)

키를 나타내며 데이터 타입과 제약 조건도 표기 관계를 세부적으로 나타냄

까마귀발(crow’s foot) 표기법

공유 킥보드 ERD (IE)

profile
👩🏻‍💻

0개의 댓글