λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ’š 개발/λ°μ΄ν„°λ² μ΄μŠ€

[λ°μ΄ν„°λ² μ΄μŠ€] λ·° (View) - 3

by devshin.kr 2021. 7. 15.
728x90
λ°˜μ‘ν˜•
λ‹€μŒ μ±…μœΌλ‘œ κ³΅λΆ€ν•œ λ‚΄μš©μ„ μ •λ¦¬ν–ˆλ‹€.


제λͺ© : λ°μ΄ν„°λ² μ΄μŠ€μ‹œμŠ€ν…œ (Database System Concepts) - 6th Edition
μΆœνŒμ‚¬ : McGraw-Hill Korea
http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788960552036&orderClick=LAG&Kc=

 

4.2.4. 뷰의 κ°±μ‹ 

- λ·°λŠ” μ§ˆμ˜μ— μœ μš©ν•œ λ„κ΅¬μ΄μ§€λ§Œ κ°±μ‹ , μ‚½μž… 및 μ‚­μ œ λ“±μ˜ 연산을 λ·°λ₯Ό μ‚¬μš©ν•˜μ—¬ ν‘œν˜„ν•  λ•Œμ—λŠ” λ§Žμ€ 문제점이 μ‘΄μž¬ν•œλ‹€.

 

- 이전에 μ‚΄νŽ΄λ³Έ 사무원을 μœ„ν•œ faculty λ·°λ₯Ό 생각해 보자. λ¦΄λ ˆμ΄μ…˜ 이름이 λ“€μ–΄κ°ˆ 수 μžˆλŠ” λͺ¨λ“  곳에 λ·° 이름을 μ‚¬μš©ν•  수 있기 λ•Œλ¬Έμ— 사무원은 λ‹€μŒκ³Ό 같은 질의λ₯Ό μˆ˜ν–‰ν•  수 μžˆλ‹€.

-- λ‚΄κ°€ μ§„μ§œ μœ„ν—˜ν•œ 짓을 ν•˜κ³  μžˆκ΅¬λ‚˜... 생각해야 ν•œλ‹€. (5년도 더 전에 적은 κ΅μˆ˜λ‹˜ ν•„κΈ° λ‚΄μš© γ…Žγ…Ž)
insert into faculty
	values('30765', 'Green', 'Music'); -- 뒀에 뭐가 더 와야 ν•˜λŠ”μ§€ λͺ¨λ₯΄κΈ° λ•Œλ¬Έμ— μœ„ν—˜ν•˜λ‹€.

- μ‚½μž… 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ‹€μŒκ³Ό 같은 두 가지 μ ‘κ·Ό 방법이 μžˆμ„ 수 μžˆλ‹€.

    1. μ‚½μž…μ„ κ±°λΆ€ν•˜κ³  μ‚¬μš©μžμ—κ²Œ 였λ₯˜ λ©”μ‹œμ§€λ₯Ό 좜λ ₯ν•œλ‹€.

    2. instructor λ¦΄λ ˆμ΄μ…˜μ— ('30765', 'Green', 'Music', null) νˆ¬ν”Œμ„ μž…λ ₯ν•œλ‹€.

 

- 일뢀 경우λ₯Ό μ œμ™Έν•˜κ³  일반적으둜 λ·° λ¦΄λ ˆμ΄μ…˜μ— λŒ€ν•œ 변경은 ν—ˆμš©λ˜μ§€ μ•ŠλŠ”λ‹€.

 

- 일반적으둜 SQL λ·°κ°€ λ‹€μŒ 쑰건 λͺ¨λ‘λ₯Ό λ§Œμ‘±ν•˜λ©΄ κ°±μ‹ κ°€λŠ₯(updatable) 이라고 ν•œλ‹€ (즉 μ‚½μž…, κ°±μ‹  ν˜Ήμ€ μ‚­μ œκ°€ 뷰에 적용될 수 μžˆλ‹€).

    1. from μ ˆμ€ 였직 ν•œ 개의 λ°μ΄ν„°λ² μ΄μŠ€ λ¦΄λ ˆμ΄μ…˜μ„ κ°€μ Έμ•Ό ν•œλ‹€.

    2. select μ ˆμ€ 였직 λ¦΄λ ˆμ΄μ…˜μ˜ 속성 μ΄λ¦„λ§Œ 포함해야 ν•˜λ©° μ–΄λ– ν•œ ν‘œν˜„(expression), 집계(aggregate), ꡬ뢄(distinct) μˆ˜μ‹μ„ κ°€μ Έμ„œλŠ” μ•ˆ λœλ‹€.

    3. select μ ˆμ— λ‚˜μ—΄λ˜μ§€ μ•Šμ€ μ–΄λ–€ 속성도 널 κ°’μœΌλ‘œ 될 수 μžˆμ–΄μ•Ό ν•œλ‹€. 즉, 이 속성듀은 not null 쑰건을 κ°€μ§€κ±°λ‚˜ μ£Ό ν‚€(primary key)의 μΌλΆ€μ—¬μ„œλŠ” μ•ˆ λœλ‹€.

    4. μ§ˆμ˜λŠ” group by λ‚˜ having μ ˆμ„ κ°€μ Έμ„œλŠ” μ•ˆ λœλ‹€.

- 이 μ œμ•½ μ‘°κ±΄μ—μ„œ λ‹€μŒκ³Ό 같이 μ •μ˜λœ λ·°μ—μ„œλŠ” update, insert, delete 연산이 κ°€λŠ₯ν•˜λ‹€.

-- 갱신이 κ°€λŠ₯ν•œ 쑰건이라도 μ—¬μ „νžˆ λ¬Έμ œκ°€ λ°œμƒν•  수 μžˆλ‹€.
create view history_instructors as
	select *
    	from instructor
    	where dept_name='History';

 

 

-> 결둠적으둜 λ·°λ₯Ό κ°±μ‹ ν•˜μ§€ μ•ŠλŠ” 게 μ•ˆμ „ν•˜λ‹€λŠ” 말을 ν•˜κ³  싢은 것 κ°™λ‹€.

λ°˜μ‘ν˜•

λŒ“κΈ€