3.
데이터 : 현실세계 vs. 컴퓨터 현실세계 ( 개체 ) 개념세계 ( 개념 ) 컴퓨터세계 ( 데이타 ) 개체 개체타입 레코드타입 특성 속성 필드 값 값 값 값 추상화 추상적 변환 데이타구조의 사실 개념적모델링 개념적표현 데이타모델링 논리적표현 3.
: 현실세계 vs. 컴퓨터 현실세계 개체 개념세계 개념적구조 일치성 저장 컴퓨터세계 논리적구조 3.3
데이터모델 (Data Model) - I 다음사항들을기술하기위한개념적표현 데이터 데이터들간의관계 데이터의의미 일관성제약조건 데이터모델 : D = < S, O, C > S : 데이터의구조 (Structure) 정적성질 ( 추상적개념 ) - 개체타입과이들간의관계를명세 O : 연산 (Operations) 동적성질 - 개체인스턴스를처리하는작업 ( 데이터조작 ) 에대한명세 C : 제약조건 (Constraints) 데이타의논리적제약 - 개체인스턴스의허용조건 데이타조작의한계를표현한규정 3.4
데이터모델 (Data Model) - II 현실세계 개체 일치성 개념세계 개념적구조 개체 - 관계모델 저장 컴퓨터세계 논리적구조 관계형모델 설계 3.5
관계형데이터모델 안동대학교정보과학교육과 3.6
배울내용 관계대수 일반집합연산 순수관계대수연산 확장관계대수연산 의수정 뷰 3.7
관계대수 (Relational Algebra) 릴레이션을처리하기위한연산의집합 릴레이션 : 투플의집합 기본연산 일반집합연산 : 합집합, 교집합, 차집합, 카티션프로덕트 순수관계연산 : 실렉트, 프로젝트, 조인, 디비전 폐쇄성질 (closure property) 피연산자와연산결과가모두릴레이션 중첩 (nested) 된수식의표현이가능 3.8
일반집합연산 (I) 합집합 (union, ) R S = { t t R t S } R S R + S 교집합 (intersect, ) R S = { t t R t S } R S min{ R, S } 차집합 (difference,-) R S = { t t R t S } R S R 카티션프로덕트 (cartesian product, ) R S = { r s r R s S } : 접속 (concatenation) R S = R S 차수 (degree) = R의차수 + S의차수 3.9
합집합연산 일반집합연산 (II) 표기법 : r s 정의 : r s = {t t r or t s} r s가가능하려면, r과 s는같은항 ( 애트리뷰트의수가같음 ) 을가져야함 애트리뷰트의도메인은양립할수있어야함 예 즉, r 의두번째열은 s 의두번째열의것과같은유형의값을다룸 릴레이션 r A B 릴레이션 s A B 3 r s A B 3 3.0
교집합연산 일반집합연산 (III) 표기법 : r s 정의 : r s = {t t r and t s} 가정 : r과 s는같은항을갖는다. r과 s의애트리뷰트는양립성이있다. 유의 : r s = r - (r - s) 예 릴레이션 r A B 릴레이션 s A B r s A B 3 3.
차집합 일반집합연산 (IV) 표기법 : r - s 정의 : r - s = {t t r and t s} r - s가가능하려면, r과 s는같은항 ( 애트리뷰트의수가같음 ) 을가져야함 애트리뷰트의도메인은양립할수있어야함 예 즉, r 의두번째열은 s 의두번째열의것과같은유형의값을다룸 릴레이션 r A B 릴레이션 s A B 3 r - s A B 3.
일반집합연산 (V) 카티젼곱연산 표기법 : r s 정의 : r s = {t q t r and q s} r(r) 과 s(s) 의애트리뷰트가서로다르다고가정 ( 즉, R S = φ). r(r) 과 s(s) 의애트리뷰트가서로같다면, 재명명을사용해야함 예 r s A B C D E 0 + 릴레이션 r 릴레이션 s A B C D E γ 0 0 0 0 + + - - γ γ 0 0 0 0 0 0 0 + - - + + - - 3.3
순수관계연산 (I) 선택연산 표기법 : σ P (r) 정의 : σ P (r) ={ t t r and P(t)} 여기서, P 는다음과같은유형의표현을다루는조건식 < 속성 > = ( 또는, >,, <, ) < 속성 > 또는 < 상수 > (and), (or), (not) 으로연결된다. 예제 릴레이션 r A B C D 5 3 7 7 3 0 σ A=B D>5 (r) A B C D 7 3 0 3.4
순수관계연산 (II) 추출연산 표기법 : Π A, A,, Ak(r) 여기서 A, A 는애트리뷰트명이고 r은릴레이션명 결과는명시하지않은열을제외한 k 열의릴레이션 릴레이션은집합이기때문에중복행은결과에서제거 예 릴레이션 r A B C 0 0 30 40 Π A, C (r) A C A C 3.5
순수관계연산 (III) 죠인연산 표기법 : r θ s (= Theta join), r N s (= Natural join) r 과 s 를각각스키마 R 과 S 상의릴레이션이라하면, 죠인연산결과는 r 의튜플 t r 과 s 의튜플 t s 의각쌍을고려해얻은스키마 R S 상의릴레이션이다. t r 과 t s 가 R S 의애트리뷰트각각에같은값을가지면, 다음과같이튜플 t 가결과에추가된다. t 는 r 상에 t r 로서같은값을갖는다. t 는 s 상에 t s 로서같은값을갖는다. 예 : R = (A, B, C, D), S = (E, B, D) 결과스키마는 (A, B, C, D, E) r s 는다음과같이정의된다. Π r.a, r.b, r.c, r.d, s.e (σ r.b=s.b r.d=s.d (r s)) 3.6
3.7 순수관계연산 (IV) 죠인연산 ( 계속 ) - 예 A B C D γ δ 4 γ γ a a b a b 릴레이션 r B D E 3 3 a a a b b γ δ ε 릴레이션 s A B C D E δ γ γ a a a a b γ γ δ r s
순수관계연산 (V) 나누기연산 표기법 : r s 모두에대한 이라는구절을내포한질의에적합하다. r 과 s 를각각이다음과같은스키마 R, S 상의릴레이션이라하면, 예 R = (A,, A m, B,, B n ), S = (B,, B n ) r s 의결과는스키마 R-S = (A,, A m ) 상의릴레이션 r s = {t t Π R-S (r) u s(tu r)} 릴레이션 r A γ δ δ δ δ ε ε B 3 3 4 6 릴레이션 s B r s A ε 3.8
순수관계연산 (V-) 나누기연산예 학과목 (SC) 과목 (C) 과목 (C) 과목 3(C3) 학번 과목번호 (SNO) (CNO) 00 C43 00 E4 00 C3 300 C3 300 C34 300 C43 400 C3 400 C34 400 C43 400 E4 500 C3 과목번호 (CNO) C43 학번 (SNO) 00 300 400 과목번호 (CNO) C3 C43 과목번호 (CNO) C3 C43 E4 SC C SC C SC C3 학번 (SNO) 300 400 학번 (SNO) 400 3.9
순수관계연산 (VI) 재명명연산 이름을줄수있도록하여관계대수표현식의결과를참조하도록함 하나이상의이름으로릴레이션을참조하도록함 예: ρ x (E) 이름 x로표현식 E를돌려줌 예 : 관계형대수표현식 E 가 n 항이면, ρ x (A, A,,An) (E) 이름 x 하에 A, A,,A n 으로재명명된애트리뷰트를가진표현식 E 의결과를돌려줌 3.0
재명명연산예 순수관계연산 (VI-) Account-number Branch-name balance 0 0 0 5 7 305 Downtown Perryridge Brighton Mianus Brighton Redwood Round hill 500 400 900 700 750 700 350 은행에서가장큰잔고를찾아라. Π balance (account) Π account.balance (σ account.balance < d.balance (account X ρ d (account))) 3.
순수관계연산 (VII) 배정연산 배정연산 ( ) 은복잡한질의를편리하게표현하는방법을제공 질의를일련의배정연산과질의의결과값이출력되는표현식으로구성된순차프로그램으로작성 배정은항상임시릴레이션변수로작성되어야함 예 : r s 는다음과같이작성한다. temp Π R-S (r) temp Π R-S ((temp s) - Π R-S,S (r)) result = temp - temp 의오른쪽결과가 의왼쪽의릴레이션변수에배정 연속표현식내에변수를사용할수있음 3.
순수관계연산 (VIII) 복합연산 ( 예, σ A=C (r s) ) (r s) r s A B C D E 0 + 릴레이션 r 릴레이션 s A B C D E γ 0 0 0 0 + + - - γ γ 0 0 0 0 0 0 0 + - - + + - - σ A=C (r s) A B C D E 0 0 0 + + - 3.3
배울내용 관계대수 일반집합연산 순수관계대수연산 확장관계대수연산 의수정 뷰 3.4
확장관계대수연산 (I) 일반화추출연산 추출리스트에산술함수를사용하도록함으로써추출연산을확장 Π F, F,, Fn (E) E 는관계형대수표현식이다. F, F,, F n 각각은 E 의스키마내에상수와애트리뷰트를내포하고있는산술표현식이다. 주어진릴레이션 credit-info(customer-name, limit, credit-balance) 에대해각개인이얼마까지사용할수있는지를찾아라. Π customer-name, limit credit-balance (credit-info) 3.5
확장관계대수연산 (II) 외부조인 (I) 정보의손실을피하기위한조인연산의확장 조인을계산하고다른릴레이션의튜플과부합하지않는어떤릴레이션의튜플들을조인의결과에추가 널값을사용 널은알려지지않은값이나존재하지않는값을의미 널을내포한모든비교는정의에의해거짓 3.6
확장관계대수연산 (III) 외부조인예제 (I) loan 릴레이션 branch-name loan-number Downtown L-70 Redwood L-30 Perryridge L-60 amount 3000 4000 700 borrower 릴레이션 customer-name loan-number Jones L-70 Smith L-30 Hayes L-55 3.7
외부조인예제 (II) loan borrower 확장관계대수연산 (IV) branch-name loan-number amount Downtown L-70 3000 Redwood L-30 4000 customer-name Jones Smith loan borrower branch-name loan-number amount customer-name Downtown Redwood Perryridge L-70 L-30 L-60 3000 4000 700 Jones Smith null 3.8
확장관계대수연산 (V) 외부조인예제 (III) loan borrower branch-name loan-number amount Downtown L-70 3000 Redwood L-30 4000 null L-55 null customer-name Jones Smith Hayes loan borrower branch-name loan-number amount Downtown L-70 3000 Redwood L-30 4000 Perryridge L-60 700 null L-55 null customer-name Jones Smith null Hayes 3.9
확장관계대수연산 (VI) ⅰ. 세미조인 (Semijoin, ) R(X), S(Y) 의조인애트리뷰트를 Z=X Y 라하면 R S = R N(Π Z (S)) = Π X (R NS) S 와자연조인을할수있는 R 의투플 특징 R S S R R NS = (R S) NS = (S R) NR 처리해야될데이타의양이다름 3.30
자연조인과세미조인 확장관계대수연산 (VII) R S Π X Y (S) A B C B C D B a b c b c d b a b c b c d b a3 b c b c3 d3 a4 b c3 C c c3 N R N S N R S A B C D A B C a b c d a b c a b c d N a b c a b c d a4 b c3 a b c d a4 b c3 d3 ( 세미조인 ) ( 자연조인 ) 3.3
확장관계대수연산 (VI) 집성함수 집성연산자는값의모임을취해하나의값을결과로돌려준다. avg: 평균값 min: 최소값 max: 최대값 sum: 합계 count: 값의개수 G, G,, Gn F A, F A,..., Fn An (E) E는관계형대수표현식 G, G,, G n 은그룹핑할애트리뷰트리스트 F i 는집성함수 A i 는애트리뷰트명 3.3
집성함수예 (I) 확장관계대수연산 (VII) 릴레이션 r A B C 7 7 3 0 sum c (r) sum-c 7 3.33
집성함수예 (II) branch-name 확장관계대수연산 (VIII) 릴레이션 account 를 branch-name 으로그룹핑한다. branch-name account-number balance Perryridge A-0 400 Perryridge A-0 900 Brighton A-7 750 Brighton A-5 750 Redwood A- 700 sum balance(account) branch-name sum-balance Perryridge 300 Brighton 500 Redwood 700 3.34
배울내용 관계대수 일반집합연산 순수관계대수연산 확장관계대수연산 의수정 뷰 3.35
수정 (I) 의내용은다음연산을사용해수정 삭제 삽입 갱신 이들모든연산은배정연산자를사용해표현 3.36
수정 (II) 삭제 삭제요청은질의와유사하게표현되나, 사용자에게튜플을출력하는대신에, 선택한튜플들이에서제거 튜플을통째로삭제할수있지, 특정애트리뷰트의값만을삭제할수는없음 삭제는관계형대수로다음과같이표현 r r - E 여기서 r 은릴레이션이고, E 는관계형대수질의 3.37
수정 (III) 삭제예 Perryridge 지점의모든계좌레코드를삭제하라. account account - σ branch-name = Perryridge (account) 0부터 50 사이의금액을가진모든대출레코드를삭제하라. loan loan - σ amount 0 and amount 50 (loan) Needham에위치한지점의모든계좌를삭제하라. r σ branch-city = Needham (account branch) r Π branch-name, account-number, balance (r ) r 3 Π customer-name, account-number (r depositor) account account - r depositor depositor - r 3 3.38
수정 (IV) 삽입 릴레이션에데이터를삽입하려면 삽입될튜플을지정 결과가삽입될튜플의집합인질의를작성 관계형대수에서, 삽입은다음과같이표현 r r E 여기서 r 은릴레이션이고, E 는관계형대수표현식 단일튜플의삽입은 E 를하나의튜플을내포한상수릴레이션이되도록하여표현 3.39
수정 (V) 삽입예 에 Smith 가 Perryridge 지점에,00 불의계좌 A-973 을가지고있다는정보를삽입하라. account account { Perryridge, A-973, 00} depositor depositor { Smith, A-973} Perryridge 지점의모든대출고객에게 00 불의저축예금계좌를제공하고자한다. 대출번호를새로운저축계좌의계좌번호로하자. r (σ branch-name = Perryridge (borrower loan)) account account Π branch-name, loan-number, 00 (r ) depositor depositor Π customer-name, loan-number (r ) 3.40
수정 (VI) 갱신 튜플내의모든값을바꾸지않고일부값을변경하는기법 일반화추출연산자를사용 r Π F, F,, F n (r) 각 F i 는 i 번째애트리뷰트가갱신되지않거나갱신될 r 의 i 번째애트리뷰트이다. F i 는애트리뷰트에새로운값을주는상수와 r 의애트리뷰트만을내포하는표현식이다. 3.4
수정 (VII) 갱신예 모든잔고에 5% 의이자를지급하라. account Π BN, AN, BAL BAL*.05 (account) 여기서 BAL, BN 및 AN 은각각 balance, branch-name 및 account-number 를나타낸다. 0,000 불을초과하는잔고에는 6% 의이자를지급하고그외의잔고에는 5% 의이자를지급하라. account Π BN, AN, BAL BAL*.06 (σ BAL > 0000 (account)) Π BN, AN, BAL BAL*.05 (σ BAL 0000 (account)) 3.4
배울내용 관계대수 일반집합연산 순수관계대수연산 확장관계대수연산 의수정 뷰 3.43
뷰 (View) 어떤경우에도, 모든사용자가전체논리모델을보는것이바람직하지않음 전체논리모델 에저장된모든실제릴레이션 고객의대출번호는알필요가있으나대출금액을알필요가없는개인을고려해보자. 이사람은다음과같이관계형대수로기술된릴레이션을보아야만한다. Π customer-name, loan-number (borrower loan) 개념적모델의일부는아니지만사용자에게 가상릴레이션 으로보이는릴레이션을뷰라한다 3.44
뷰 (II) 뷰의정의 create view v as < 질의표현식 > 여기서 < 질의표현식 > 은관계형대수질의표현식 뷰명은 v로표현 일단뷰가정의되면, 뷰를생성하는가상릴레이션을참조하는데뷰명이사용될수있음 뷰정의는질의표현식을평가함으로써새로운릴레이션을생성하는것과는다르게뷰를사용하는질의내에대치될표현식을저장 3.45
뷰의예 뷰 (III) 지점과고객으로구성된뷰 ( 뷰명 : all-customer) 를고려해보자. create view all-customer as branch-name, customer-name (depositor account) branch-name, customer-name (borrower loan) Perryridge 지점의모든고객은다음과같이찾을수있다. customer-name (σ branch-name = Perryridge (all-customer)) 3.46
요약 관계대수 일반집합연산 순수관계대수연산 확장관계대수연산 의수정 뷰 다음배울내용 : 관계형설계 3.47