구이제이 2024. 2. 5. 17:49

책 내용 참고

























p403

 

 

행/row/투플/레코드 = 카디널리티

 

1.삽입이상:

 

2.수정이상 :

(갱신이상)

 

3.삭제이상:

 

이상이 발생할떄, 해결이 ‘정규화’ 라고한다

.

A : 결정자(PK,프라이머리키)

B : 종속자

 

학생번호+강좌이름 = 강의실

(결정자) (종속자)

A값을 알면 다른 속성 B의 값이 유일하게 정해지는 의존관계



ㅡㅡ

이행규칙

 



하나의 테이블에서 하나의역할만, 무손실분해

 

하나의 테이블 하나의역할

메소드,클래스도 하나의 역할만 - 단일책임의원칙



입금만

출금만

검색만.

 

최대한 중복안되고, 주업무하기위해, 쪼갠다.













p412

릴레이션(테이블)

 

A     -> B

학생번호 학생이름

결정자 종속자






정규화는 6가지로 나누어진다.

정규화과정.




너무 쪼개나서 속도가 나지않아서, 다시고치는 과정, ‘역정규화/반정규화’

 

#

도메인 : 속성들이 가질수있는 범위의 값

#

제1정규형(1NF)

릴레이션(테이블)

아래 모든 속성값이 원자값을 가진다면, 

 

#

제2정규형(2NF

 

제1정규형 만족하고(도메인이 원자값을 가져야한다)

기본키가 아닌 속성이 기본키에 완전 함수 종속일때, 제2정규형이다.

부분적함수종속을 제거한다.



학생번호와 강좌이름알면, 성적당연히 결정된다.

강의실은 강좌이름만 알고있어도, 안다.

둘중 하나만알아도, 강의실을 알수있다. 완전히 종속이 아니라, 부분적 종속, 2개를 다알아서 알수있고, 하나만 알아도 알수있는, 강의실. 2개중 하나만알아도 안다면, 

이것을 쪼갠다.

 

pk pk

(학생 번호, 강좌이름), 성적



강좌이름 > 강의실

(결정자) (종속자)

함수종속. (하나를

2개중에 하나만 알아도되는게 아니라, 이녀석 아니면, 결정할수없게 만드는 정규화작업

명확하게 알수있어!(함수종속)

 

???

부분함수종속

함수종속




 

★이행적함수종속(A를알면 B를 알수있고 B알면 C를 알수있고, A를 알면 C를 알수있는 것) 



정규형이 높아질수록 오류율이 적다.



학생번호,강좌이름 = 완전함수종속

강좌이름,수강료 = 완전함수종속




123 > BCNF > 4NF > 5NF

 

BCNF(boyxe codd nomard Form)

 

학생번호와 특강이름으로 교수를 알수있다.

교수를 알면 특강을 알수있다.

기본키 잡아라하면,

결정자를 기본기를 잡을수있다. 그중에서 하나만쓰면 기본키고 나머지는 후보키,

 

 

★결정자이면서 후보키가 아닌것 제거



종속자인데, 쪼개서 교수가 pk가 되는 것

이것을 제거하는것이  BCNF



쪼개져 나갈때, 둘중한곳은 하나는 써줘야댐

 


BCNF완성

학생번호(PK),교수

교수(PK),특강이름

 

 

 

조인 : 특정 속성을 기준으로 하나로 묶는 것

원래 릴레이션(테이블)이랑 같으면 무손실분해



 

더들어간상태, 손실이 일어나서 이것은 ‘무손실분해’라고 하지않는다.




 

교수 혼자있을때, 후보키가 아니였따.






p441

트랜잭션

 

계좌조회(트랜잭션이다)

이체(트랜잭션이다)

출금(트랜잭션이다)

입금(트랜잭션이다)

 

하나하나이루어지는 작업을 ‘트랜잭션’이라한다.



2가지중 하나는 해야된다.

전체가 수행되거나전혀되지 않아야된다.

트랜잭션의성질 ★★★(한글/영어/의미)

 

-원자성(전부수행되거나, 전부수행되지 말아야된다.)

 

-일관성

 

-고립성

 내가지금 계좌이체하는 동안, 누구도 조회하거나, 뭐 들어오면 안된다.

(commit은 완료)

(rollback은 회복)

 

-지속성

commit후 DB에 저장되는데, 이미 저장된 데이터는 언제 꺼내도, 똑같아야한다.



p453

2.3락(Lock, 로크)







데드락

 

P480

 

P485























ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

MYSQL



포트번호 : 3306



#오토 커밋 

자동으로 commit해준다.

(오라클은 그렇지 않다)









#D2코딩 설정








#새로시작할때,

#불러올떄

#저장할때,







만드는 순서(부모부터 만든다)