Skip to content

2024 Spring Database System Assignment Repository

Notifications You must be signed in to change notification settings

boulce/my_database

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

70 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Database System Course Assignment

2024 Spring Database System Assignment Repository

part1 ์„ค๊ณ„ ๋ณ€๊ฒฝ์‚ฌํ•ญ

  • ์ƒ์„ฑํ•  ํ…Œ์ด๋ธ”์˜ ์™ธ๋ž˜ํ‚ค๋Š” ๊ณ ๋ คํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ํ…Œ์ŠคํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ primary key constraint๋ฅผ ํ™•์ธํ•œ๋‹ค.
  • ๋ ˆ์ฝ”๋“œ ์‚ฝ์ž…ํ•  ๋•Œ, ๋ฐ˜๋ณต๋ฌธ์„ ์ด์šฉํ•ด ๋ธ”๋ก์„ ํƒ์ƒ‰ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์‚ฝ์ž…ํ•  ์œ„์น˜๊ฐ€ ๋งํฌ๋กœ ๋ฐ”๋กœ ๋‚˜์˜ค๊ณ  ๊ทธ๋ž˜์„œ ์‚ฝ์ž…ํ•  ๋ธ”๋ก ์œ„์น˜๊ฐ€ ๋ฐ”๋กœ ๋‚˜์˜ค๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜๋ณต๋ฌธ์„ ์“ฐ์ง€ ์•Š๋Š”๋‹ค
  • char๋ฐฐ์—ด๊ณผ, int link๋ฅผ byte ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ํ•œ ๋ฒˆ์— ๋ธ”๋ก๋‹จ์œ„๋กœ .txtํŒŒ์ผ์ด ์•„๋‹ˆ๋ผ .tbl ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์— ์ถœ๋ ฅํ•œ๋‹ค.
  • ํ…Œ์ŠคํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ primary key ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋Š”๋ฐ, ์ˆซ์ž ํฌ๊ธฐ ์˜ค๋ฆ„์ฐจ์ˆœ์ด ์•„๋‹ˆ๋ผ ๋ฌธ์ž์—ด ์‚ฌ์ „์ˆœ ์˜ค๋ฆ„์ฐจ์ˆœ์ด๋ฏ€๋กœ id10์ด id9 ๋‹ค์Œ์ด ์•„๋‹ˆ๋ผ id1 ๋‹ค์Œ์— ์˜ค๊ฒŒ๋œ๋‹ค.

๊ณ ๋ฏผํ•œ์ 

  • ์ตœ๋Œ€ํ•œ byte์— ์ง์ ‘ ์ ‘๊ทผํ•˜์ง€ ์•Š๊ณ  Block์ด๋‚˜ Record ํด๋ž˜์Šค๋กœ ๋ณ€๊ฒฝํ•˜๋„๋ก ๋…ธ๋ ฅํ–ˆ๋‹ค. ์ฆ‰ ์ฝ์€ byteBlock -> Block -> Record -> byte ์ด๋Ÿฐ ์‹์˜ ๋ณ€ํ™˜์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜์—ฌ byte์— ์ง์ ‘ ์ ‘๊ทผํ•˜์ง€ ์•Š๊ณ  ๊ฐ์ฒด์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•˜๋„๋ก ํ•˜์˜€๋‹ค. QueryEvaluationEngine ๋ถ€๋ถ„์—์„œ ์ง์ ‘ ์ ‘๊ทผํ•˜๋Š” ๋ถ€๋ถ„์ด ์žˆ๊ธดํ•œ๋ฐ ๋‚˜์ค‘์— ์ด๋Ÿฐ ์‹์œผ๋กœ ๋‹ค๋“ฌ์œผ๋ฉด ์ข‹์„๊ฒƒ ๊ฐ™๋‹ค
  • ๋ฆฌํŒฉํ† ๋ง์— ์‹ ๊ฒฝ์ผ๋‹ค. ์ฝ”๋“œ์˜ ์˜๋ฏธ ๋‹จ์œ„๋กœ ํ•˜๋‚˜์˜ ๋ฉ”์†Œ๋“œ๋กœ ๋ฌถ์—ˆ๊ณ , ํ•œ ํด๋ž˜์Šค์— ๋ชจ๋“  ๋ฉ”์†Œ๋“œ๋ฅผ ๋•Œ๋ ค๋ฐ•์ง€ ์•Š๊ณ  ์„ค๊ณ„ํ•œ๋Œ€๋กœ ๋ฉ”์†Œ๋“œ๋“ค์„ ๋‚˜๋ˆ„์–ด ๋‹ด์•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ถœ๋ ฅ๋ถ€๋ถ„์ด๋ž‘ Processing ๋ถ€๋ถ„์ด๋ž‘ ๋‚˜๋ˆ„๋„๋ก ๋…ธ๋ ฅํ–ˆ๋‹ค.
  • ๊ฒฐ๊ณผ์…‹์„ ์„ฑ์˜์—†์ด ์ถœ๋ ฅํ•˜์ง€ ์•Š๊ณ  ํ…Œ์ด๋ธ” ํ˜•ํƒœ๋กœ ์ถœ๋ ฅํ•˜๋„๋ก ํŠน์ˆ˜๋ฌธ์ž ์ฐ๋Š”๋ฐ ์‹œ๊ฐ„์ด ๋งŽ์ด ๋“ค์—ˆ๋‹ค.
  • ์‚ญ์ œํ•  ๋•Œ Select One ํ•จ์ˆ˜ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ๋‹ค ์“ธ๊นŒ ๊ณ ๋ฏผํ–ˆ๋Š”๋ฐ, ๊ทธ๋Ÿฌ๋ฉด ํŒŒ์ผ์„ ๋‘๋ฒˆ ์—ฐ๊ฒฐํ•ด์•ผํ•  ๊ฒƒ ๊ฐ™์•„์„œ ๋กœ์ง ์ฝ”๋“œ๋งŒ ๊ฐ–๋‹ค์“ฐ๊ณ  ํ•จ์ˆ˜๋ฅผ ๊ทธ๋Œ€๋กœ ์“ฐ์ง€๋Š” ์•Š์•˜๋‹ค.

์‹œ๊ฐ„๋˜๋ฉด ๊ฐœ์„ ํ•ด๋ณผ์ 

  • Record์— ๋ธ”๋ก์˜ ๋ช‡๋ฒˆ์งธ ์ธ๋ฑ์Šค์ธ์ง€ ์ €์žฅํ•ด์„œ, ๋”ฐ๋กœ ๋ฐ˜๋ณต๋ฌธ ๋Œ๋•Œ ๋ช‡๋ฒˆ์งธ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ๋ณ€์ˆ˜๋ฅผ ๋ฐ–์œผ๋กœ ์•ˆ๋นผ๋„ ๋˜๋„๋ก ํ•˜๊ธฐ
  • byte์— ์ง์ ‘ ์ ‘๊ทผํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค๋ฉด Record, Block ํด๋ž˜์Šค๋กœ ๋ณ€๊ฒฝํ•ด์„œ ์ ‘๊ทผํ•˜๊ธฐ(Done)
  • ์‚ญ์ œ๋กœ์ง์—์„œ headerBlock๊ณผ readBlock ๊ฐ™์„๋•Œ headerBlock์ด ๋ฐ”๋กœ readBlock์„ ๊ฐ€๋ฆฌํ‚ค๋„๋ก ๋ณ€๊ฒฝํ•˜๊ธฐ

part2 ๊ณ ๋ฏผํ•œ ์ 

  • Buffer๋ฅผ ๊ธฐ์กด์— ๊ตฌํ˜„ํ–ˆ๋˜ Block ์ž๋ฃŒํ˜•์œผ๋กœ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋‚˜ ๊ณ ๋ฏผํ•˜์˜€๋Š”๋ฐ ๊ธฐ์กด์˜ Block์€ free list ํŒŒ์ผ ๊ตฌ์กฐ์— ๋งž์ถ”์–ด ์ž‘์„ฑ๋˜๊ธฐ๋„ ํ•˜์˜€๊ณ , Block์€ ํŒŒ์ผ์„ ์ฝ๋Š” ๋‹จ์œ„ ๊ฐœ๋…์ด๊ณ  Buffer๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฐœ๋…์ด๊ธฐ ๋•Œ๋ฌธ์— BufferPage๋ผ๋Š” ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.

  • ์กฐ์ธ์„ ์ˆ˜ํ–‰ํ•œ ํ›„์— ๊ฒฐ๊ณผ ์ •๋ณด๋ฅผ ์–ด๋–ป๊ฒŒ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ• ์ง€ ๊ณ ๋ฏผํ•˜์˜€๋‹ค. ๋ถ„๋ช…ํžˆ ์–‘์ชฝ ๋ ˆ์ฝ”๋“œ์˜ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜๊ธฐ๋Š” ํ•˜์ง€๋งŒ ์ถœ๋ ฅ์„ ์œ„ํ•ด์„œ๋Š” ํ•ญ์ƒ ๊ทธ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์„ ํ•„์š”๋Š” ์—†์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ JoinedRecords ์ž๋ฃŒํ˜•์„ ๋งŒ๋“ค์–ด ๊ฒฐ๊ณผ ์นผ๋Ÿผ ๋ฆฌ์ŠคํŠธ์™€ ๋ ˆ์ฝ”๋“œ ์Œ์€ ๊ฐ€์ง€๊ณ  ์žˆ๋˜, ์ƒ์„ฑ์ž์—์„œ ๊ฐ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ๋งŒ ํ•„์š”ํ•˜๋„๋ก ๊ตฌํ˜„ํ•˜์˜€๋‹ค.

About

2024 Spring Database System Assignment Repository

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages