본문 바로가기

이론/DB

[데이터베이스] 8-2 ER to RDB - (2)

 

 

*다른 필기* 

 

0531

-p1
er모델링에 나타난 여러가지 패턴들을 관계형 데이터베이스로 바꾸는 것

-p2
기본키 정하고 데이터타입 정하고, 프로퍼티 정하면 테이블 완성

er다이어그램상에 나타난 각 엔티티가 테이블로 변환한다
변동 상황이 없다면 엔티티 식별자가 기본키가 된다
기본키가 너무 길고 가변적인 경우 대체키를 사용할 수 있다//int추가 삽입

후보키 - 유니크라고 달아줘야 됨

각 칼럼에 대한 데이터 타입을 잘 정해야된다
varchar() - 많이 씀//가변 길이
char() - 길이 고정
integer 
float,double,decimal
datetime

-p3
그림자가 er다이어그램의 엔티티 
********
시험문제에서 그림자를 따로 그릴 필요는 없다
********
er -> 데이터베이스 갈때는 타입이 필요하다
각 에트리뷰트가 일대일로 갔음
식별자 -> 기본키

-p4
이상적인 기본키는 짧아야 된다// 식별자가 되더라도 기본키로 지정하며 안됨
            디비의 성능이 나빠진다//기본키는 항상 달고 다님
            식별자가 길경우 쒀러게이트키를 만들어 줘라

쒀러게이트 키 - 사용자에게는 의미가 없다

-p5
기본키를 지정하고나면 후보키 설정
후보키는 테이블에서 튜플을 식별하는 대안적인 키
전화번호가 유일해야 된다하면 그것이 후보키가 된다
이름은 유니크 하지 않기 때문에 안됨

-p6
employee
email이 유니크해야 된다는 것 표현되있음
email이 후보키

Customer
이 부분 제대로 이해못함 ㅠ

-p7
null state
colum에 value가 null이 될 수 있는지 없는지
email이 유니크 하긴하지만 비어있을 수 있다는 표현

-p8~9
data type
decimal //소수점을 설명할 때 고정 소수점 
ex) salary decimal(5, 2);//전체적 다섯자리, 소수점 두자리
gps cordinate - decimal(9,6) 사용
      위도,경도
부동소수점
float - 4byte를 이용해서 표현
double - 8byte 이용
varchar - 65535byte까지
text - varchar max와 같다
long text - 4.2Gb //무조건 크게 잡으면 안됨

-p10
strong은 "1:1, 1:n, m:m"의 경우가 있다
녹음 38분 부분


p11 페이지의 relationship을 테이블로 만든 예제 

Member,Locker tables

create table club_member(MemberNumber int primary key, memberName varchar(50) not null,

email varchar unique, phone varchar(15) not null unique, enter_date datetime default now() );

 

craete table locker(LockerNumber int primary key, Room char(1) not null, AssignedMember int, enter_date datetime default now(), foreign key Assigned Member references club_member(MemberNumber));

 

1:N relationship 

1쪽을 parent라고 하고 many쪽을 child라고 한다.

 

create table Company(

CompanyID int primary key,

CompanyName varchar(50) unique not null,

City varchar(20),

Country varchar(20),

Volume bigint,

enter_date datetime default now());

 

create table department(

DepartmentName varchar(10) not null unique,

BudgetCode char(2) not null, 

MailStop varchar(30), 

enter_date datetime default now(), 

foreign key AssignmentMember references club_member(memberNumber));

 

15page M:N relationship 

Company_Part_Int table

 

create table Company_Part_Int(CompanyID int, partID int,

foreign key CompanyID references Company(CompanyID),

foreign key PartID reference Part(PartID));

-> 여기에 enter_date를 넣어도 상관없다. 

 

id dependent한 

 

• Representing N:M Relationships –We just discussed this

• Association Relationships

• Multivalued Attributes

• Archtype/Instance Relationships : 두가지 형태로 구현될 수 있다. 

 

• id dependent: 자기가 참조하고 있는 strong entity의 식별자를 그대로 상속받은 경우, id를 의존하고 있다는 뜻이다. 

 

• An intersection table

• An association table : intersection table에서 attribute를 추가적으로 가지게 되는 패턴 (**중요하다**) 

 

• mutiValued attribute 

phone_contact  table

create table phone_contact ( contact int not null, CompanyID varchar(30) not null, phoneNumber varchar(15) not null, primary key(contact, CompanyID) , foreign key CompanyID references Company(CompanyID));