[Day12] Oracle12 [10/13]


--1. book, panmai, danga, gogaek ์กฐ์ธํ•˜์—ฌ ๋‹ค์Œ์„ ์ถœ๋ ฅ ํ•œ๋‹ค.
--  -- ์ฑ…์ด๋ฆ„(title) ๊ณ ๊ฐ๋ช…(g_name) ๋…„๋„(p_date) ์ˆ˜๋Ÿ‰(p_su) ๋‹จ๊ฐ€(price) ๊ธˆ์•ก(p_su*price)
--  -- ๋‹จ, ๋…„๋„ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ถœ๋ ฅ

SELECT title, g_name , p_date,  p_su,  price  ,  p_su * price ํŒ๋งค๊ธˆ์•ก
FROM danga d  JOIN book b ON d.b_id = b.b_id  -- INNER JOIN , EQUI JOIN
               JOIN panmai p ON b.b_id = p.b_id
               JOIN gogaek g ON p.g_id = g.g_id
ORDER BY p_date DESC               ;


--TITLE            G_NAME               P_DATE         P_SU      PRICE         ๊ธˆ์•ก
------------------ -------------------- -------- ---------- ---------- -----
--์šด์˜์ฒด์ œ            ๊ฐ•๋‚จ์„œ์              21/11/03          5              450           2250
--์—‘์…€                  ์„œ์šธ์„œ์              21/11/03         31               321           9951
--๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค     ๊ฐ•๋ถ์„œ์              21/11/03         26              300           7800
--๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค     ๊ฐ•๋‚จ์„œ์              21/11/03         17               300           5100
--์—‘์„ธ์Šค               ๊ฐ•๋‚จ์„œ์              21/11/03         21               510          10710
--์šด์˜์ฒด์ œ           ์šฐ๋ฆฌ์„œ์              21/11/03          13              450           5850
--๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค     ์šฐ๋ฆฌ์„œ์              00/10/10         10              300           3000
--๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค     ๊ฐ•๋ถ์„œ์              00/10/10         15              500           7500
--์›Œ๋“œ                  ์„œ์šธ์„œ์              00/07/07          5              320            1600
--๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค     ๋„์‹œ์„œ์              00/03/04        20             300           6000

 

--2. book ํ…Œ์ด๋ธ”, panmai ํ…Œ์ด๋ธ”, gogaek ํ…Œ์ด๋ธ”์„ b_id ํ•„๋“œ์™€ g_id ํ•„๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์กฐ์ธํ•˜์—ฌ 
--๋‹ค์Œ์˜ ํ•„๋“œ ์ถœ๋ ฅ ํ•œ๋‹ค. 
--๋‹จ, book ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ํ–‰์€ ์ถœ๋ ฅ ๋˜๋„๋ก ํ•œ๋‹ค.( OUTER ์กฐ์ธ)
--  ( ํŒ๋งค๊ฐ€ ์•ˆ๋œ ์ฑ… ์ •๋ณด๋„ ์ถœ๋ ฅ )

SELECT b.b_id, title, g.g_id, g_name, p_su
FROM  book b  LEFT JOIN panmai p ON b.b_id = p.b_id
              LEFT JOIN gogaek g ON p.g_id = g.g_id;
--ORDER BY p_date DESC              ;

 

  
--์ฑ…ID       ์ œ๋ชฉ                     G_ID G_NAME              ํŒ๋งค์ˆ˜๋Ÿ‰
------------ ------------------- ---------- -------------------- 
--b-1        ์šด์˜์ฒด์ œ                     1 ์šฐ๋ฆฌ์„œ์                      13
--a-1        ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค               1 ์šฐ๋ฆฌ์„œ์                      10
--a-1        ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค               2 ๋„์‹œ์„œ์                      20
--d-1        ์—‘์…€                            4 ์„œ์šธ์„œ์                      31
--c-1        ์›Œ๋“œ                            4 ์„œ์šธ์„œ์                       5
--b-1        ์šด์˜์ฒด์ œ                     6 ๊ฐ•๋‚จ์„œ์                       5
--a-1        ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค               6 ๊ฐ•๋‚จ์„œ์                      17
--f-1        ์—‘์„ธ์Šค                          6 ๊ฐ•๋‚จ์„œ์                      21
--a-2        ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค               7 ๊ฐ•๋ถ์„œ์                      15
--a-1        ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค               7 ๊ฐ•๋ถ์„œ์                      26
--e-1        ํŒŒ์›Œํฌ์ธํŠธ                                                     
--f-2        ์—‘์„ธ์Šค                                                        
--b-2        ์šด์˜์ฒด์ œ                                                      

 


--3. ๋…„๋„, ์›”๋ณ„ ํŒ๋งค ํ˜„ํ™ฉ ๊ตฌํ•˜๊ธฐ
--
--๋…„๋„           ์›”        ํŒ๋งค๊ธˆ์•ก( p_su * price )
------           --         ----------
--2000        03          6000
--2000        07           1600
--2000        10           10500
--2021          11           41661

SELECT  TO_CHAR( p_date, 'YYYY') ๋…„๋„, TO_CHAR( p_date, 'MM') ์›”, SUM( p_su * price ) ์ดํŒ๋งค๊ธˆ์•ก
FROM panmai p JOIN danga d  ON p.b_id = d.b_id
GROUP BY TO_CHAR( p_date, 'YYYY'), TO_CHAR( p_date, 'MM')
ORDER BY TO_CHAR( p_date, 'YYYY'), TO_CHAR( p_date, 'MM') ;


--4. ์„œ์ ๋ณ„ ๋…„๋„๋ณ„ ํŒ๋งคํ˜„ํ™ฉ ๊ตฌํ•˜๊ธฐ 
--
--๋…„๋„         ์„œ์ ID ์„œ์ ๋ช…                ํŒ๋งค๊ธˆ์•ก
------ ---------- -------------------- ----------
--2000          7 ๊ฐ•๋ถ์„œ์                    7500
--2000          2 ๋„์‹œ์„œ์                    6000
--2000          4 ์„œ์šธ์„œ์                    1600
--2000          1 ์šฐ๋ฆฌ์„œ์                    3000
--2021          6 ๊ฐ•๋‚จ์„œ์                   18060
--2021          7 ๊ฐ•๋ถ์„œ์                    7800
--2021          4 ์„œ์šธ์„œ์                    9951
--2021          1 ์šฐ๋ฆฌ์„œ์                    5850
--
--8๊ฐœ ํ–‰์ด ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 
 

SELECT  TO_CHAR( p_date, 'YYYY') ๋…„๋„, g.g_id, g_name , SUM( p_su * price ) ์ดํŒ๋งค๊ธˆ์•ก
FROM panmai p JOIN danga d  ON p.b_id = d.b_id
              JOIN gogaek g ON g.g_id = p.g_id
GROUP BY TO_CHAR( p_date, 'YYYY'), g.g_id, g_name
ORDER BY TO_CHAR( p_date, 'YYYY') , g_name ;


 
--5. ์˜ฌํ•ด ๊ฐ€์žฅ ํŒ๋งค๊ฐ€ ๋งŽ์€ ์ฑ…(์ˆ˜๋Ÿ‰์„ ๊ธฐ์ค€์œผ๋กœ) 
--
--์ฑ…ID       ์ œ๋ชฉ       ๊ถŒ์ˆ˜
------------ ----------------
--a-1        ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค  43
-- 
---- TOP-N ๋ฐฉ์‹

SELECT t.*  -- , ROWNUM
FROM ( 
            SELECT b.b_id, title, SUM( p_su ) total_psu      --, p_date
            FROM book b  JOIN panmai p ON b.b_id = p.b_id
            WHERE TO_CHAR( p_date , 'YYYY') = TO_CHAR(SYSDATE, 'YYYY')
            GROUP BY b.b_id, title
            ORDER BY total_psu DESC
     )  t
WHERE ROWNUM = 1;



-- RANK() ํ•จ์ˆ˜  (ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 1๋ฒˆ ๋ฌธ์ œ)

SELECT *
FROM (
            SELECT b.b_id, title, SUM( p_su ) total_psu      --, p_date
                  , RANK() OVER( ORDER BY SUM( p_su ) DESC )  ์˜ฌํ•ดํŒ๋งค์ˆœ์œ„
            FROM book b  JOIN panmai p ON b.b_id = p.b_id
            WHERE TO_CHAR( p_date , 'YYYY') = TO_CHAR(SYSDATE, 'YYYY')
            GROUP BY b.b_id, title
)
WHERE ์˜ฌํ•ดํŒ๋งค์ˆœ์œ„ = 1;


--6. ์„œ์ ๋ณ„ ํŒ๋งคํ˜„ํ™ฉ ๊ตฌํ•˜๊ธฐ
--
--์„œ์ ์ฝ”๋“œ  ์„œ์ ๋ช…  ํŒ๋งค๊ธˆ์•กํ•ฉ  ๋น„์œจ(์†Œ์ˆ˜์  ๋‘˜์งธ๋ฐ˜์˜ฌ๋ฆผ)  
------------ -------------------------- ----------
--7            ๊ฐ•๋ถ์„œ์    15300            26%
--4           ์„œ์šธ์„œ์     11551             19%
--2           ๋„์‹œ์„œ์     6000              10%
--6           ๊ฐ•๋‚จ์„œ์     18060            30%
--1           ์šฐ๋ฆฌ์„œ์      8850             15%

SELECT g_id, g_name, ํŒ๋งค๊ธˆ์•กํ•ฉ
      ,  ROUND( ํŒ๋งค๊ธˆ์•กํ•ฉ / ์ดํŒ๋งค๊ธˆ์•ก * 100 )  || '%'
FROM (
            SELECT  g.g_id, g_name , SUM( p_su  * price )  ํŒ๋งค๊ธˆ์•กํ•ฉ
                 , (SELECT SUM( p_su * price ) FROM panmai p JOIN danga d ON  p.b_id = d.b_id) ์ดํŒ๋งค๊ธˆ์•ก
            FROM gogaek g JOIN panmai p ON g.g_id = p.g_id
                          JOIN danga d ON  p.b_id = d.b_id
            GROUP BY    g.g_id, g_name            
) t



--7. ๋ชจ๋“   ์ฑ… ์ค‘์— ๊ฐ€์žฅ ์ ๊ฒŒ ํŒ๋งค๊ฐ€ ๋œ ์ฑ…์˜ ์ •๋ณด๋ฅผ ์กฐํšŒ( TOP-1 )
--   ( ์ฑ…ID, ์ œ๋ชฉ, ๊ฐ€๊ฒฉ, ์ดํŒ๋งค๋Ÿ‰ )

SELECT t.b_id, t.title, t. price, t.p_su
FROM (
  SELECT b.b_id, b.title, d.prcie, p.p_su,
        RANK() OVER( ORDER BY p.p_su) seq
  FROM panmai p, book b, danga d
  WHERE b.b_id = p.b_id AND b.b_id = d.b_id;
) t
WHERE t.seq = 1;


--8. ์ด ํŒ๋งค๊ถŒ์ˆ˜๊ฐ€ 10๊ถŒ ์ด์ƒ ํŒ๋งค๋œ ์ฑ…์˜ ์ •๋ณด ์กฐํšŒ (  - HAVING ์ ˆ )
--   ( ์ฑ…ID, ์ œ๋ชฉ, ๊ฐ€๊ฒฉ, ์ดํŒ๋งค๋Ÿ‰ ) 

SELECT b.b_id, title , price , SUM(  p_su ) ์ดํŒ๋งค๋Ÿ‰
FROM  book b JOIN danga d ON b.b_id = d.b_id
          JOIN panmai p ON p.b_id = b.b_id
GROUP BY       b.b_id, title , price    
HAVING    SUM(  p_su ) >= 10
ORDER BY ์ดํŒ๋งค๋Ÿ‰ DESC;

-- CROSS JOIN : ๋ชจ๋“  ์กฐํ•ฉ!!
SELECT e.*, d.*
FROM emp e , dept d


emp 12๋ช…    dept 4๊ฐœ
12*4 = 48 

 

CROSS JOIN


-- ANTI JOIN :  ์„œ๋ธŒ์ฟผ๋ฆฌ +  NOT IN ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ
-- SEMI JOIN :  ์„œ๋ธŒ์ฟผ๋ฆฌ  + EXISTS ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ


--- ***  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ๋ง( DB ๋ชจ๋ธ๋ง )  **** ---


1) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ๋ง( DB ๋ชจ๋ธ๋ง ) ์ •์˜ 
   ใ„ฑ. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ? ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ๋“ค์˜ ์ง‘ํ•ฉ(๋ชจ์ž„)
   ใ„ด. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ๋ง ? ํ˜„์‹ค ์„ธ๊ณ„์˜ ์—…๋ฌด์ ์ธ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šคํ™” ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ๊ณผ์ •
   ์˜ˆ) ํšŒ์‚ฌ ์‚ฌ์› ->  ์ •๋ณด(๋ฐ์ดํ„ฐ) -> ๋ฌผ๋ฆฌ์  ์ €์žฅํ•˜๋Š” ๊ณผ์ •
                   ์š”๊ตฌ/๋ถ„์„
   ใ„ท. ์ˆœ์„œ(์ ˆ์ฐจ, ๊ณผ์ •)
      ****
      [ํ˜„์‹ค์„ธ๊ณ„ ์—…๋ฌด ํ”„๋กœ์„ธ์Šค]   -> [ ๊ฐœ๋…์  DB ๋ชจ๋ธ๋ง ]
         1) ์—…๋ฌด ์š”๊ตฌ ๋ถ„์„
           ์š”๊ตฌ๋ถ„์„์„œ ์ž‘์„ฑ                  ↓
                 โ†• ์ผ์น˜์„ฑ ๊ฒ€ํ†                            
         [ ๋ฌผ๋ฆฌ์  DB ๋ชจ๋ธ๋ง ]  <- [ ๋…ผ๋ฆฌ์  DB ๋ชจ๋ธ๋ง ]

2) ์ˆœ์„œ (์š” - ๊ฐœ - ๋…ผ - ๋ฌผ) 
   ใ„ฑ. ์—…๋ฌด ์š”๊ตฌ ๋ถ„์„
   ใ„ด. ๊ฐœ๋…์  DB ๋ชจ๋ธ๋ง : ๊ฐœ์ฒด(Entity) , ์†์„ฑ(Attribute)์ถ”์ถœ      [๊ฐœ์ฒด / ์†์„ฑ -> ๊ด€๊ณ„]
                                       ->  ๊ฐœ์ฒด ๊ฐ„์˜ ๊ด€๊ณ„ ์ •์˜ (ER-Diagram ์ž‘์„ฑ)
                                    
   ใ„ท. ๋…ผ๋ฆฌ์  DB ๋ชจ๋ธ๋ง : ER-Diagram -> ๋งคํ•‘๋ฃฐ( mapping rule )) ->  "์Šคํ‚ค๋งˆ ์„ค๊ณ„"
                                       ->  "์ •๊ทœํ™”" ์ž‘์—… ์ˆ˜ํ–‰


   ใ„น. ๋ฌผ๋ฆฌ์  DB ๋ชจ๋ธ๋ง
       - DBMS ์ •ํ•˜๊ธฐ : ์˜ค๋ผํด
       - ์ปฌ๋Ÿผ : ๋ฐ์ดํ„ฐ ํƒ€์ž…, ํฌ๊ธฐ       
       + ์„ฑ๋Šฅ ์œ„ํ•ด   ์ธ๋ฑ์Šค ์ •์˜ , "์—ญ์ •๊ทœํ™”" ์ž‘์—…

    -- DB ์ƒ์„ฑ ์™„๋ฃŒ!!
    
    ์›น/์•ฑ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ


<1>  ์š”๊ตฌ(์—…๋ฌด) ๋ถ„์„
    ์˜ˆ) ํšŒ๊ณ„๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ - ์•ฑ
   - ๊ด€๋ จ ๋ถ„์•ผ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ง€์‹๊ณผ ์ƒ์‹ค ํ•„์š” ( ๋Œ€์ฐจ๋Œ€์กฐํ‘œ, ์ž์‚ฐ, ์†์‹ค, ์†์ต๋ถ„๊ธฐ์ .... ) : ํšŒ๊ณ„ ๊ฐ•์‚ฌ, ํ•™์›
   - ์‹ ์ž… ์‚ฌ์› ์ž…์žฅ์œผ๋กœ ์—…๋ฌด ์ž์ฒด์™€ ํ”„๋กœ์„ธ์Šค ํŒŒ์•…, ๋ถ„์„ ํ•„์š”.
   - ์š”๋ น :  ๋ชจ๋“  ๋ฌธ์„œ(์„œ๋ฅ˜, ์žฅํ‘œ, ๋ณด๊ณ ์„œ )๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋กœ ๊ด€๋ฆฌ๋˜์–ด์ง€๋Š” ํ•ญ๋ชฉ์„ ์ •ํ™•ํ•˜๊ฒŒ ํŒŒ์•… ํ•„์š”.
                ์•ฑ/์›น์˜ ๋ชจ๋“  ํŽ˜์ด์ง€ ์ด์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋กœ ๊ด€๋ฆฌ๋˜์–ด์ง€๋Š” ํ•ญ๋ชฉ ์ •ํ™•ํ•˜๊ฒŒ ํŒŒ์•… ํ•„์š”. (ํŽ˜์ด์ง€ ๋‹ค ํด๋ฆญํ•ด๋ด์•ผํ•จ!)
   - ๋‹ด๋‹น์ž ๋ฏธํŒ…( ์ธํ„ฐ๋ทฐ )      
   - ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค ํŒŒ์•…  
   - ์‚ฌ์šฉ์ž ์š”๊ตฌ ๋ถ„์„
   :
   :
   :D
   ์š”๊ตฌ ๋ถ„์„์„œ ์ž‘์„ฑ


<2> ๊ฐœ๋…์  [DB ๋ชจ๋ธ๋ง]
  1) ์š”๊ตฌ ๋ถ„์„ - ์‚ฌ์šฉ์ž๊ฐ€ ํ•„์š”๋กœ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ํŒŒ์•…, ๋ฐ์ดํ„ฐ๋ฅผ DB์— ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ถ„์„ ์ž‘์—…
  2) ์š”๊ตฌ ๋ถ„์„์„ ํ†ตํ•ด์„œ ์–ป์–ด์ง„ ํ˜„์‹ค ์„ธ๊ณ„์˜ ์ •๋ณด๋ฅผ ์‚ฌ๋žŒ๋“ค์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…ํ™•ํ•œ ํ˜•ํƒœ๋กœ
     ํ‘œํ˜„ํ•˜๋Š” ๋‹จ๊ณ„ - ๊ฐœ๋…์  [DB ๋ชจ๋ธ๋ง]
  3) ER-Diagram
    - ๋ช…ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘  ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์žˆ๋Š” ๊ฒƒ์ด  ๋‹ค์ด์–ด๊ทธ๋žจ ... 
    - ๊ฐœ์ฒด(Entity) - ์†์„ฑ(Attribute )                    ๊ด€๊ณ„( R ) 
   4) E-R Model
      ใ„ฑ. 1976๋…„ P.Chen์ด ์ œํ•œ ๊ฒƒ.
      ใ„ด. ๊ฐœ์ฒด ๊ด€๊ณ„ ๋ชจ๋ธ
          ๊ฐœ์ฒด  -   ์‚ฌ๊ฐํ˜•
          ์†์„ฑ  -   ํƒ€์›
          ๊ด€๊ณ„  -   ๋งˆ๋ฆ„๋ชจ
          ์—ฐ๊ฒฐ  -    ์‹ค์„ , ์ ์„ 
          ์‹๋ณ„์ž -   ์–ธ๋”๋ผ์ธ
        

์˜ˆ) ํ•™์ƒ ๊ณผ์ • ์‹ ์ฒญํ•˜๋Š” ์—…๋ฌด ํ”„๋กœ์„ธ์Šค ํŒŒ์•… ->  ER-Diagram

        [ ํ•™์ƒ ๊ฐœ์ฒด( Entity )]-------<์ˆ˜๊ฐ•์‹ ์ฒญ๊ด€๊ณ„>-----[ ๊ณผ์ • ๊ฐœ์ฒด( Entity )]
          ์†์„ฑ                      ์†์„ฑ                        ์†์„ฑ
            - (ํ•™๋ฒˆ)                    (์ˆ˜๊ฐ•์‹ ์ฒญ๋ฒˆํ˜ธ)                 - ๊ณผ์ • ๋ฒˆํ˜ธ
            - ํ•™์ƒ๋ช…                        "  ๊ณผ์ •๋ช…              - ๊ณผ์ •๋ช…
            - ํ•™๋…„                          "  ๊ฒฐ์žฌ์—ฌ๋ถ€            ๋“ฑ๋“ฑ
            - ์„ฑ์ 
            - ์—ฐ๋ฝ์ฒ˜
            - ์ฃผ์†Œ
            ๋“ฑ๋“ฑ


   5) ER-Diagram ์šฉ์–ด
      ์‹ค์ฒด(Entity)
      ์†์„ฑ(Attribute)
      ๊ด€๊ณ„(Relational)
      ์‹๋ณ„์ž( Identifier )

   6) ์‹ค์ฒด( Entity ) == ๊ฐœ์ฒด
     a) ์—…๋ฌด ์ˆ˜ํ–‰์„ ์œ„ํ•ด์„œ ๋ฐ์ดํ„ฐ๋กœ ๊ด€๋ฆฌ๋˜์–ด์ ธ์•ผ ํ•˜๋Š” ์‚ฌ๋žŒ, ์‚ฌ๋ฌผ, ์žฅ์†Œ, ์‚ฌ๊ฑด ๋“ฑ๋“ฑ "์‹ค์ฒด"๋ผ ํ•œ๋‹ค. 
         ์ด ๋•Œ ๊ตฌ์ถ•ํ•˜๊ณ ์ž ํ•˜๋Š” ์—…๋ฌด์˜ [ ]์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋กœ ๊ด€๋ฆฌ๋˜์–ด์ ธ์•ผ ํ•˜๋Š” ํ•ญ๋ชฉ ํŒŒ์•…์ด ๋งค์šฐ ์ค‘์š”
     b)  ์‹ค์ฒด๋Š” ํ•™์ƒ, ๊ต์ˆ˜ ๋“ฑ๊ณผ ๊ฐ™์€ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์กด์žฌํ•˜๋Š” ์œ ํ˜•
            ํ•™๊ณผ, ๊ณผ์ •, ๊ณผ๋ชฉ ๋“ฑ๊ณผ ๊ฐ™์ด ๊ฐœ๋…์ ์œผ๋กœ ์กด์žฌํ•˜๋Š” ๋ฌดํ˜•.
     c) ์‹ค์ฒด๋Š” ํ…Œ์ด๋ธ”๋กœ ์ •์˜๋œ๋‹ค. 
     d) ์‹ค์ฒด๋Š” ์ธ์Šคํ„ด์Šค๋ผ ๋ถˆ๋ฆฌ๋Š” ๊ฐœ๋ณ„์ ์ธ ๊ฐ์ฒด๋“ค์˜ ์ง‘ํ•ฉ์ด๋‹ค. 
          ์˜ˆ)  ๊ณผ๋ชฉ : ์ž๋ฃŒ ๊ตฌ์กฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋“ฑ๋“ฑ์˜ ์ธ์Šคํ„ด์Šค๋“ค์˜ ์ง‘ํ•ฉ
                 ํ•™๊ณผ : ์ปดํ“จํ„ฐ๊ณตํ•™๊ณผ, ์ „์ž ๊ณตํ•™๊ณผ ๋“ฑ๋“ฑ ์ธ์Šคํ„ด์Šค๋“ค์˜ ์ง‘ํ•ฉ.
     e) ์‹ค์ฒด๋ฅผ ํŒŒ์•…ํ•˜๋Š” ์š”๋ น
        - ๊ด€๋ จ ์—…๋ฌด์— ๋Œ€ํ•œ ์ง€์‹ ( ๊ฐ€์žฅ ์ค‘์š” ) 

     ์˜ˆ) ํ•™์›์—์„œ๋Š” ํ•™์ƒ๋“ค์˜ ์ถœ๊ฒฐ์ƒํƒœ์™€ ์„ฑ์ ๊ด€๋ฆฌ๋ฅผ ๊ณผ๋ชฉ๋ณ„๋กœ ํ•˜๊ธฐ๋ฅผ ์›ํ•œ๋‹ค. - ์š”๊ตฌ ๋ถ„์„ํ•œ ๋‚ด์šฉ ์ค‘

        ์‹ค์ฒด(Entity) :  ํ•™์ƒ E, ์ถœ๊ฒฐ E, ์„ฑ์  E, ๊ณผ๋ชฉ E, ํ•™์› E ( ์ฒด์ธ์  )  ๋“ฑ๋“ฑ
        - ๊ฐ์ข… ์„œ๋ฅ˜ ์ด์šฉํ•ด์„œ ์‹ค์ฒด ํŒŒ์•…ํ•˜๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•. 
        - ๋‹ด๋‹น์ž ๋ฏธํŒ…


   7) ์†์„ฑ( Attribute ) - ํƒ€์›
      - ์†์„ฑ์ด๋ž€? ์‹ค์ฒด์— ๋Œ€ํ•œ ์ €์žฅํ•  ํ•„์š”๊ฐ€ ์žˆ๋Š” ์ •๋ณด
      - ์‹ค์ฒด์˜ ์„ฑ์งˆ, ์ˆ˜๋Ÿ‰, ์ƒํƒœ, ํŠน์ง•, ํŠน์„ฑ, ๋ถ„๋ฅ˜ ๋“ฑ๋“ฑ ์‹ค์ฒด์˜ ์„ธ๋ถ€ ํ•ญ๋ชฉ์„ ์˜๋ฏธํ•œ๋‹ค. 
      - ์†์„ฑ ์„ค์ • ์‹œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์€  ๊ด€๋ฆฌ์˜ ๋ชฉ์ ๊ณผ ํ™œ์šฉ ๋ฐฉํ–ฅ์— ๋งž๋Š” ์†์„ฑ ์„ค์ •์ด ํ•„์š”ํ•˜๋‹ค. 
         ์†Œ์† ๊ด€๊ณ„: ์†์„ฑ ์—ฌ๋ถ€
      
      ์˜ˆ) 

          ํšŒ์› E
          ํšŒ์› A - ํšŒ์›ID, ํšŒ์›๋ช…, [ํšŒ์›์ž์‚ฐ]O   ๋“ฑ๋“ฑ
                                          X
           ์‚ฌ์› E - ์‚ฌ์›๋ฒˆํ˜ธ, ์‚ฌ์›๋ช…, ์ฃผ๋ฏผ๋ฒ„ํ˜ธ, ์ž…์‚ฌ์ผ, ํ‡ด์‚ฌ์ผ, ๋ถ€์„œ๋ช…, ์ง๊ธ‰ ๋“ฑ๋“ฑ
                     ๊ฐ€์กฑ์‚ฌํ•ญ์ •๋ณด O X -- ๊ด€๋ฆฌ ๋ชฉ์ , ํ™œ์šฉ ๋ฐฉํ–ฅ



      - ์†์„ฑ์˜ ์ข…๋ฅ˜( ์œ ํ˜• )
          a) ๊ธฐ์ดˆ ์†์„ฑ : ์›๋ž˜ ๊ฐ–๊ณ  ์žˆ๋Š” ์†์„ฑ ์˜ˆ) ์‚ฌ์› E - ์‚ฌ์›๋ฒˆํ˜ธ, ์ฃผ๋ฏผ๋ฒˆํ˜ธ, ์‚ฌ์›๋ช… ๋“ฑ๋“ฑ
          b) ์ถ”์ถœ ์†์„ฑ : ๊ธฐ์ดˆ์†์„ฑ์œผ๋กœ ๋ถ€ํ„ฐ ์–ป์–ด์งˆ ์ˆ˜ ์žˆ๋Š” ์†์„ฑ
                                ๊ธฐ์ดˆ์†์„ฑ ์ค‘์—  [์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ] ๋ถ€ํ„ฐ ๋‚˜์ด 24 X, ์„ฑ๋ณ„ X, ์ƒ์ผ X, ์ง€์—ญ ๋“ฑ๋“ฑ -> ๊ธฐ์ดˆ์†์„ฑ์œผ๋กœ ์–ป์–ด์˜ฌ์ˆ˜์žˆ์Œ
                                -> ํ•ด๋‹น ์†์„ฑ์„ ๋”ฐ๋กœ ๋งŒ๋“ค๊ฒŒ๋˜๋ฉด : ์ž๋ฃŒ์˜ ์ค‘๋ณต์„ฑ์ƒ๊น€, ๋ฌด๊ฒฐ์„ฑ ํ™•๋ณด X 
          c) ์„ค๊ณ„ ์†์„ฑ : ์‹ค์ œ๋กœ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋‚˜ ์‹œ์Šคํ…œ์˜ ํšจ์œจ์„ฑ์„ ์œ„ํ•ด์„œ ์„ค๊ณ„์ž๊ฐ€ ์ž„์˜๋กœ ๋ถ€์—ฌํ•œ ์†์„ฑ.
              ex)

              ๋‹ด๋‹น์ž ์ƒ๋‹ด
              ๊ณ ๊ฐ ์ƒ๋‹ด
              
              ์‡ผํ•‘์‚ฌ์ดํŠธ :   ํšŒ์›๊ฐ€์ž… + ์ฃผ๋ฌธ + ๊ฒฐ์žฌ + [๋ฐฐ์†ก]
              ์ฃผ๋ฌธ ์ƒํ’ˆ   :   ํฌ์žฅ, ๋ฐฐ์†ก์ค‘, ์–ด๋””๊นŒ์ง€, ์–ธ์ œ ๋“ฑ๋“ฑ  ๋ฐ์ดํ„ฐ ์ €์žฅ X
          
              ๊ณ ๊ฐ           :   ๋ฐฐ์†ก ์–ธ์ œ๋˜๋Š”์ง€ ๊ฒŒ์† ์—ฐ๋ฝ --> ๋ฐฐ์†ก์ƒํƒœ ์†์„ฑ ์ถ”๊ฐ€
                  
               ์ฃผ๋ฌธ์ƒํƒœํ™•์ธ์ค‘
               ๋ฐฐ์†ก์ค€๋น„์ค‘
               ๋ฐฐ์†ก~   CJํƒ๋ฐฐ ์—ฐ๋™   + []
               ๋ฐฐ์†ก์ผ์ •
               ๋ฐฐ์†ก์™„๋ฃŒ
               ๊ตฌ๋งค์ทจ์†Œ/


   8) ์†์„ฑ ๋„๋ฉ”์ธ ์„ค์ •            
      - ๋ฌด๊ฒฐ์„ฑ 3๊ฐ€์ง€ : ๊ฐœ์ฒด, ์ฐธ์กฐ, [๋„๋ฉ”์ธ ๋ฌด๊ฒฐ์„ฑ]    kor NUMBER(3)  0~100 CK 
      - ๋„๋ฉ”์ธ ์„ค์ • : ์†์„ฑ์ด ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ’๋“ค์˜ ๋ฒ”์œ„ ์ฆ‰, ์„ธ๋ถ€์ ์ธ ์—…๋ฌด, ์ œ์•ฝ์กฐ๊ฑด ๋ฐ ํŠน์„ฑ์„ ์ „์ฒด์ ์œผ๋กœ ์ •์˜ํ•ด ์ฃผ๋Š” ๊ฒƒ
      - ๋„๋ฉ”์ธ ์ •์˜ ์‹œ์—๋Š” ์†์„ฑ์˜ ์ด๋ฆ„, ์ž๋ฃŒํ˜•, ๊ธธ์ด, ํ˜•์‹, ์ œ์•ฝ์กฐ๊ฑด, ์œ ์ผ์„ฑ, ๋„ ์—ฌ๋ถ€, ์œ ํšจํ•œ ๊ฐ’, ์ดˆ๊ธฐ๊ฐ’ ํŒŒ์•…..
          
    9)  ์‹๋ณ„์ž( Identifier )
       - ์‹๋ณ„์ž ? ํ•œ ์‹ค์ฒด(E) ๋‚ด์—์„œ ๊ฐ๊ฐ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๋‹จ์ผ ์†์„ฑ ๋˜๋Š” ์†์„ฑ๊ทธ๋ฃน
          ์˜ˆ) ํ•™์ƒ E : ๊ฐ๊ฐ 30๋ช…์˜ ํ•™์ƒ๋“ค์„ ๊ตฌ๋ถ„ํ•  ์ˆ˜์žˆ๋Š” ์†์„ฑ: ํ•™์ƒ์ด๋ฆ„ X, ์ฃผ๋ฏผ๋ฒˆํ˜ธO , [ํ•™๋ฒˆ O], ํ•™์ƒID O,
       - ์‹๋ณ„์ž๊ฐ€ ์—†์œผ๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ : ์ˆ˜์ •, ์‚ญ์ œ, ์ถ”๊ฐ€ DML    
       - ์‹๋ณ„์ž์˜ ์ข…๋ฅ˜
          a) ํ›„๋ณดํ‚ค( Candiate Key ) : ์‹ค์ฒด์—์„œ ๊ฐ๊ฐ์˜ ์ธ์Šคํ„ด์Šฌ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋Š” ์†์„ฑ
            ์˜ˆ) ํ•™์ƒ E :  ์ฃผ๋ฏผ๋ฒˆํ˜ธO , [ํ•™๋ฒˆ O], ํ•™์ƒID , Email X, TEL  X (์‚ฌ์šฉ ์•ˆํ• ์ˆ˜๋„)
                                                       ใ„ด ํ•™๊ต + ํ•™๊ณผ + 01 + 0001
          b) ๊ธฐ๋ณธํ‚ค( Priamry Key ) : ํ›„๋ณดํ‚ค ์ค‘์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ํ‚ค [ํ•™๋ฒˆ O] -> ํ™œ์šฉ๋„, ๊ธธ์ด, ์„ฑ๋Šฅ ๊ณ ๋ คํ•ด์„œ ๊ธฐ๋ณธํ‚ค๋กœ ์„ ํƒ
          c) ๋Œ€์ฒดํ‚ค( Alternate Key)  : ์ฃผ๋ฏผ๋ฒˆํ˜ธO  ํ•™์ƒID , Email X, TEL  X (์‚ฌ์šฉ ์•ˆํ• ์ˆ˜๋„) -> ํ›„๋ณดํ‚ค - ๊ธฐ๋ณธํ‚ค =  ๋Œ€์ฒดํ‚ค 
          d) ๋ณตํ•ฉํ‚ค( Composite Key ) : ํ•˜๋‚˜์˜ ์†์„ฑ์ด ๊ธฐ๋ณธํ‚ค๊ฐ€ ๋  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์— ๋‘˜ ์ด์ƒ์˜ ์†์„ฑ์ด ๋ฌถ์—ฌ์„œ ๊ธฐ๋ณธํ‚ค๋กœ ์ •์˜ํ•œ ๊ฒฝ์šฐ
                - ๋ณตํ•ฉํ‚ค๋ฅผ ๊ตฌ์„ฑํ•  ๊ฒฝ์šฐ ์ฃผ์˜ ์‚ฌํ•ญ :  1์†์„ฑ, 2์†์„ฑ  ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค.  ์™œ ? ์„ฑ๋Šฅ 1์†์„ฑ์œผ๋กœ ์ธ๋ฑ์Šค ์„ค์ •.
                - ์ˆœ์„œ์— ๋”ฐ๋ผ์„œ ๋‹ฌ๋ผ์ง€๋Š” ์ด์œ  ?  PK ์„ค์ •์„ ํ•˜๋ฉด ์ž๋™์œผ๋กœ ๊ทธ ์†์„ฑ์€ UNIQUE ,NOT NULL + [์ž๋™ INDEX ์„ค์ •]
         

          ex) ๊ธ‰์—ฌ ์ง€๊ธ‰ ๊ฐœ์ฒด
                        ๋ณตํ•ฉํ‚ค                                                     ๋Œ€๋ฆฌํ‚ค
          [๊ธ‰์—ฌ์ง€๊ธ‰์ผ   ์‚ฌ์›๋ฒˆํ˜ธ]   ์ง€๊ธ‰์ผ์ž   ๊ธ‰์—ฌ์•ก       ์ง€๊ธ‰์ˆœ๋ฒˆ ( ์ผ๋ จ๋ฒˆํ˜ธ + ์„ฑ๋Šฅ, DML ํšจ์œจ์„ฑ ) = PK = ๋Œ€๋ฆฌํ‚ค
                                                       1/2/3/4
          ์กฐํšŒ ํ•  ๋•Œ ? ์‚ฌ์›๋ฒˆํ˜ธ๋กœ ๊ธ‰์—ฌ ์ง€๊ธ‰ ํ™•์ธ -> ๊ธ‰์—ฌ์ง€๊ธ‰์ผ๋ณด๋‹ค ์‚ฌ์›๋ฒˆํ˜ธ๊ฐ€ ์•ž์œผ๋กœ ์™€์•ผ๋จ (์ธ๋ฑ์Šค ์‚ฌ์›๋ฒˆํ˜ธ๋กœ)

        e) ๋Œ€๋ฆฌํ‚ค( Surrogate Key )
            - ์‹๋ณ„์ž๊ฐ€ ๋„ˆ๋ฌด ๊ธธ๊ฑฐ๋‚˜ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ณตํ•ฉํ‚ค๋กœ ๊ตฌ์„ฑ๋˜์–ด์งˆ ๊ฒฝ์šฐ ์ธ์œ„์ ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ์‹๋ณ„์ž ๋Œ€์šฉ์˜ ์†์„ฑ 
            = ์—ญ์ •๊ทœํ™”   
            
    10) ๊ด€๊ณ„( Relational )      
       - ๊ด€๊ณ„ : ์—…๋ฌด์˜ ์—ฐ๊ด€์„ฑ.  -> ์‹ค์ฒด๋ฅผ ์ •์˜ํ•˜๋‹ค๋ณด๋ฉด ์„œ๋กœ ์—ฐ๊ด€๋œ ์‹ค์ฒด๋“ค ์žˆ๋‹ค. 

          ์˜ˆ)  ๋ถ€์„œ ์‹ค์ฒด        <์†Œ์†๊ด€๊ณ„>         ์‚ฌ์› ์‹ค์ฒด
                ์ƒํ’ˆ ์‹ค์ฒด        <์ฃผ๋ฌธ๊ด€๊ณ„>          ๊ณ ๊ฐ ์‹ค์ฒด
                                         ์ฃผ๋ฌธ๋ฒˆํ˜ธ
                                         ์ฃผ๋ฌธ์ผ์ž
                                         ๋“ฑ๋“ฑ          
                ํ•™์ƒ ์‹ค์ฒด ----<๊ฐ€๋ฅด์นจ ๊ด€๊ณ„>----๊ต์ˆ˜ ์‹ค์ฒด


          
       - ๊ด€๊ณ„ ํ‘œํ˜„ (๊ด€๊ณ„์ฐจ์ˆ˜ ์„ค์ •)
          1)  ๋‘ ์‹ค์ฒด๋ฅผ ์‹ค์„ ์œผ๋กœ ์—ฐ๊ฒฐํ•˜๊ณ  ๊ด€๊ณ„๋ฅผ ๋ถ€์—ฌํ•œ๋‹ค. 
          2)  ๊ด€๊ณ„ ์ฐจ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค.

               1:1
               1:N
               N:M 
                                                N:M ๊ด€๊ณ„
               ๊ณ ๊ฐ์‹ค์ฒด                    ์ฃผ๋ฌธ๊ด€๊ณ„                     ์ƒํ’ˆ์‹ค์ฒด


                                                 1:N ๊ด€๊ณ„
              [emp ์‹ค์ฒด]--1------<์†Œ์†๊ด€๊ณ„>------M-[dept ์‹ค์ฒด] 

          
          ( ๊ธฐ์–ต ) ๊ฐœ๋…์  ๋ชจ๋ธ๋งํ•  ๋•Œ๋Š” N:M ๊ด€๊ณ„๊ฐ€ ์กด์žฌํ•˜์ง€๋งŒ, ๋…ผ๋ฆฌ์  DB ๋ชจ๋ธ๋ง ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜๋ฉด  1:N  N:1 ๊ด€๊ณ„๋กœ ๋ฐ”๊พธ์–ด ์ง„๋‹ค. 
          
        

      [๊ฐœ๋…์  ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ์ด ์ •๋ฆฌ] 

       ์š”๊ตฌ๋ถ„์„ ํ›„  
       1๋‹จ๊ณ„ : ์‹ค์ฒด(E) ๋„์ถœ
       2๋‹จ๊ณ„ : ์†์„ฑ(a) ๋„์ถœ
       3๋‹จ๊ณ„ : ์‹๋ณ„์ž(I) ๋„์ถœ 
       4๋‹จ๊ณ„ : ๊ด€๊ณ„(r) ์„ค์ •
       5๋‹จ๊ณ„ : ๊ด€๊ณ„์ฐจ์ˆ˜ (์•„๋ž˜ ๋‘˜ ๋‹ค ๊ฐ€๋Šฅ)
        <ํ‘œ๊ธฐ๋ฒ•>           1:N 

                         OR  -|-   <
       6๋‹จ๊ณ„ : 40 ๋ฒˆ ๋ถ€์„œ์— ์‚ฌ์›์ด 1๋ช…๋„ ์—†์„๋•Œ?
           ์˜ต์…˜ ์„ ํƒ  

           O< : ์•„๋ฌด๋„ ์—†์–ด๋„ ๊ดœ์ฐฎ
            | < : ์ตœ์†Œํ•œ ํ•œ๋ช…์€ ์žˆ์–ด์•ผํ•จ

       
 [๋ฌธ์ œ1] ๋‹ค์Œ์€ ํ˜„์—… ๋‹ด๋‹ด์ž์™€์˜ ๋ฉด๋‹ด ์ž๋ฃŒ์ด๋‹ค. ( ์š”๊ตฌ ๋ถ„์„ )

     -> ์ง€๊ธˆ๊นŒ์ง€ ์•Œ์•„๋ณธ ๊ฐœ๋…์„ ๋ฐ”ํƒ•์œผ๋กœ ๋‹ค์Œ์—์„œ ์‹ค์ฒด์™€ ์ฃผ์š” ์†์„ฑ์„ ์ถ”์ถœํ•ด ๋‹ค์ด์–ด๊ทธ๋žจ์„ ๊ทธ๋ฆฌ์‹œ์˜ค.

1) ๋‚˜๋Š” ๊ต์œก์„ผํ„ฐ์˜ ๊ด€๋ฆฌ์ž์ด๋‹ค ์šฐ๋ฆฌ๋Š” ์—ฌ๋Ÿฌ ๊ณผ์ •์„ ๊ฐ€๋ฅด์น˜๋Š” ๋ฐ, ๊ฐ ๊ณผ์ •์€ ์ฝ”๋“œ,์ด๋ฆ„ ๋ฐ ์ˆ˜๊ฐ•๋ฃŒ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋‹ค. 
2) 'VB'์™€ 'Java' ๋Š” ์ธ๊ธฐ ์žˆ๋Š” ๊ณผ์ •์ด๋‹ค.
3) ๊ณผ์ •๋“ค์€ 1์ผ~4์ผ๊ฐ„์œผ๋กœ ๊ธฐ๊ฐ„์€ ๋‹ค์–‘ํ•˜๋‹ค. ๋ฐ•์ฐฌํ˜ธ์™€ ๋ฐ•์‹ ์–‘์€ ์šฐ๋ฆฌ์˜ ๊ฐ€์žฅ ํ›Œ๋ฅญํ•œ ๊ฐ•์‚ฌ๋“ค์ด๋‹ค. 
4) ์šฐ๋ฆฌ๋Š” ๊ฐ ๊ฐ•์‚ฌ์˜ ์ด๋ฆ„๊ณผ ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ํ•„์š”๋กœ ํ•œ๋‹ค. 
5) ํ•™์ƒ๋“ค์€ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ณผ์ •์„ ์ด์ˆ˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ ๋งŽ์€ ํ•™์ƒ๋“ค์ด ์ด๋ ‡๊ฒŒ ํ•˜๊ณ  ์žˆ๋‹ค. 
6) ์šฐ๋ฆฌ๋Š” ๊ฐ ํ•™์ƒ๋“ค์˜ ์ด๋ฆ„๊ณผ ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ์•Œ๊ณ  ์‹ถ๋‹ค.     


<3> ๋…ผ๋ฆฌ์  [DB ๋ชจ๋ธ๋ง] 
     1. ๊ด€๊ณ„ํ˜• ๋ชจ๋ธ์˜ ๊ฐœ๋… ์ •๋ฆฌ. 
       1-1. ๋ถ€๋ชจ ํ…Œ์ด๋ธ”๊ณผ ์ž์‹ ํ…Œ์ด๋ธ” (๊ด€๊ณ„์˜ ์ฃผ์ฒด ์—ฌ๋ถ€)
            ๋ถ€๋ชจํ…Œ์ด๋ธ” : ๊ด€๊ณ„ ์ฃผ์ฒด O , ๋จผ์ € ์ƒ์„ฑ(์ •์˜) 
            ์ž์‹ํ…Œ์ด๋ธ” : ๊ด€๊ณ„ ์ฃผ์ฒด X , ๋‚˜์ค‘์— ์ƒ์„ฑ

            ์˜ˆ) emp ์‚ฌ์›         ์†Œ์†             dept ๋ถ€์„œ
                    ์ž์‹                                       ๋ถ€๋ชจ
            
                 ๊ณ ๊ฐ E                ์ฃผ๋ฌธ               ์ƒํ’ˆ E
                   ๋ถ€๋ชจ                                        ์ž์‹


       1-2. ๊ธฐ๋ณธํ‚ค(PK)์™€  ์™ธ๋ž˜ํ‚ค(์ฐธ์กฐํ‚ค FK)

          dept                          emp
          deptno(PK)         empno(PK)  ..... depto(FK) 


       1-3. ์‹๋ณ„๊ด€๊ณ„์™€ ๋น„์‹๋ณ„๊ด€๊ณ„
           ์‹๋ณ„๊ด€๊ณ„    ?  ๋ถ€๋ชจ ํ…Œ์ด๋ธ”์˜ PK -------------> ์ž์‹ ํ…Œ์ด๋ธ”์˜  PK ๋˜๋Š” PK๊ทธ๋ฃน์— ์ „์ด๋˜๋Š” ๊ฒƒ (๋‘˜ ๋‹ค PK)
           ๋น„์‹๋ณ„๊ด€๊ณ„ ?  ๋ถ€๋ชจํ…Œ์ด๋ธ”์˜ PK -------------> ์ž์‹ ํ…Œ์ด๋ธ”์˜ FK๋กœ ์ „์ด๋˜๋Š” ๊ฒƒ                        (FK ๊ด€๊ณ„)
       

           ์˜ˆ) booke( b_id ) -> danga( b_id PK ) ์‹๋ณ„๊ด€๊ณ„.
                dept( deptno ) -> emp( deptno FK) ๋น„์‹๋ณ„๊ด€๊ณ„.


      2. ERD -> ๋…ผ๋ฆฌ์  DB ๋ชจ๋ธ๋ง
         1) ๋งคํ•‘๋ฃฐ( mapping rule) -> ๋…ผ๋ฆฌ์  [์Šคํ‚ค๋งˆ ์ƒ์„ฑ]
            * ์Šคํ‚ค๋งˆ?   scott ๊ณ„์ • ์ƒ์„ฑ +   scott ์Šคํ‚ค๋งˆ ์ƒ์„ฑ

              ์Šคํ‚ค๋งˆ : scott์ด ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฐ์ฒด - ํ…Œ์ด๋ธ”, ํ”„๋กœ์‹œ์ €, ํ•จ์ˆ˜, ์‹œํ€€์Šค, ํŠธ๋ฆฌ๊ฑฐ ๋“ฑ๋“ฑ)
              ใ„ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ๋กœ์จ,
                  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์˜ ๋ชจ๋“  ๊ฐœ์ฒด๋“ค๊ณผ ๊ฐœ์ฒด๋“ค๊ฐ„์˜ ๊ด€๊ณ„, ์ œ์•ฝ์กฐ๊ฑด, ๋“ฑ๋“ฑ ๋Œ€ํ•œ ๋ช…์„ธ๋ฅผ ์Šคํ‚ค๋งˆ๋ผํ•œ๋‹ค.

            * ๋งคํ•‘๋ฃฐ ? ERD์„ ์ด์šฉํ•ด์„œ ๊ด€๊ณ„์Šคํ‚ค๋งˆ(ํ…Œ์ด๋ธ”)์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋”ฐ๋ฅด๋Š” ๊ทœ์น™์„ ๋งคํ•‘๋ฃฐ์ด๋ผ๊ณ  ํ•œ๋‹ค. 
           
           - 1๋‹จ๊ณ„) 

                         Entity       (๊ฐœ์ฒด)   ->  ํ…Œ์ด๋ธ”
                         Relational (๊ด€๊ณ„)  ->  ํ…Œ์ด๋ธ”
                     
                   ์‚ฌ์›E  -N0---<์†Œ์†>---01- ๋ถ€์„œE
                   empno             ์†์„ฑ              deptnoI
                   ename             ๋ถ€์„œ
                   :
                    2022.1.1 ์ž…์‚ฌ                  2.1 ์˜์—ฝ
                                                            9.8 ์ด๋ฌด
                     
                   ์‚ฌ์›ํ…Œ์ด๋ธ”
                   ๋ถ€์„œํ…Œ์ด๋ธ”

                   ์†Œ์†ํ…Œ์ด๋ธ” X  : ์•„๋ฌด๋Ÿฐ ์†์„ฑ๋„ ๊ฐ€์ง€์ง€ ์•Š์„ ๋•Œ ํ…Œ์ด๋ธ” ํ•„์š” X
                   ์†Œ์†ํ…Œ์ด๋ธ” O  : ๋ฐœ๋ น์ผ๊ณผ ๊ฐ™์€ ์ด๋ ฅ ํ•„์š”ํ•  ๋•Œ [์†Œ์†]ํ…Œ์ด๋ธ” ์ƒ์„ฑ

           - 2๋‹จ๊ณ„ :  Attribute -> ์ปฌ๋Ÿผ
           - 3๋‹จ๊ณ„ :  Identifier -> PK
           - 4๋‹จ๊ณ„ :  Relational -> FK
           
           ERD ->                          MR(๋งตํ•‘๋ฃฐ)                  -> ๊ด€๊ณ„ ์Šคํ‚ค๋งˆ ์ƒ์„ฑ
       

๋ฌธ์ œ)  N    :  M ๋‹ค๋Œ€๋‹ค ๊ด€๊ณ„ X
     -> 1:N   N:1 ๋ณ€ํ™˜

-> ์ •๊ทœํ™”
         

 

           [๊ณ ๊ฐT] N              -           M [์ƒํ’ˆT] ๊ฐœ๋…์  ๋ชจ๋ธ๋ง
           [๊ณ ๊ฐT] 1          N ์ฃผ๋ฌธN     1  [์ƒํ’ˆT] ๋…ผ๋ฆฌ์  ๋ชจ๋ธ๋ง


    [์ •๋ฆฌ]
    -- DB ๋ชจ๋ธ๋ง
    -- [์š”] ->  [๊ฐœ]      MR   -> ๋…ผ                        -> ๋ฌผ
                     ERD            ๊ด€๊ณ„์Šคํ‚ค๋งˆ           DBMS/์ž๋ฃŒํ˜•/ํฌ๊ธฐ
                                            +
                                         ์ •๊ทœํ™”                  ์ธ๋ฑ์Šค, ์—ญ์ •๊ทœํ™”
                                         ์ด์ƒํ˜„์ƒ
                                         ์ข…์†์„ฑ


[๊ณผ์ œ]

๋น„๋””์˜ค ๊ฐ€๊ฒŒ(SHOP)  DB๋ชจ๋ธ๋ง = [์š”๊ตฌ๋ถ„์„์„œ]
  โ–ก ์‹ค๋ฌด์ž์™€ ๊ฐ™์ด ์—…๋ฌด์ ์ธ ์„ค๋ช…์„ ๋“ฃ๊ณ  ๋ชจ๋ธ๋ง์„ ์‹œ์ž‘ํ•ด ๋ณด์ž.
      1. ํšŒ์›์ œ๋ฅผ ์‹ค์‹œํ•˜๋Š” ๋น„๋””์˜ค ์ƒ์ .
      2. ํšŒ์› ๊ด€๋ฆฌ
         ใ„ฑ) ํšŒ์›์ด๋ฆ„, ์ฃผ๋ฏผ๋ฒˆํ˜ธ, ์ „ํ™”๋ฒˆํ˜ธ, ํœด๋Œ€ํฐ๋ฒˆํ˜ธ, ์šฐํŽธ๋ฒˆํ˜ธ, ์ฃผ์†Œ, ๋“ฑ๋ก์ผ ๋“ฑ .
      3. ๋น„๋””์˜ค ํ…Œ์ดํ”„ ๊ด€๋ฆฌ
         ใ„ฑ) ์žฅ๋ฅด๋ณ„, ๋“ฑ๊ธ‰๋ณ„๋กœ ๋‚˜๋ˆ„์–ด ๊ด€๋ฆฌ.
         ใ„ด) ๊ณ ์œ ํ•œ ์ผ๋ จ๋ฒˆํ˜ธ๋ฅผ ๋ถ€์—ฌํ•ด์„œ ๋น„๋””์˜ค ํ…Œ์ดํ”„๋ฅผ ๊ด€๋ฆฌ. 
         ใ„ท) ์˜ํ™”์ œ๋ชฉ, ์ œ์ž‘์ž, ์ œ์ž‘ ๊ตญ๊ฐ€, ์ฃผ์—ฐ๋ฐฐ์šฐ, ๊ฐ๋…, ๊ฐœ๋ด‰์ผ์ž, ๋น„๋””์˜ค ์ถœ์‹œ์ผ ๋“ฑ ์ƒ์„ธ ์ •๋ณด ๊ด€๋ฆฌ.
         ใ„น) ํŒŒ์† ์—ฌ๋ถ€์™€ ๋Œ€์—ฌ ์—ฌ๋ถ€ ๊ด€๋ฆฌ.      
      4. ๋น„๋””์˜ค ํ…Œ์ดํ”„ ๋Œ€์—ฌ
         ใ„ฑ) ํšŒ์ˆ˜์ผ์ด ๊ธฐ๋ณธ ์ดํ‹€
         ใ„ด) ๋ฏธ๋‚ฉ ํšŒ์›๋“ค์˜ ๋ชฉ๋ก์„ ์ž๋™์œผ๋กœ ๊ด€๋ฆฌ.
         ใ„ท) ์—ฐ์ฒด๋˜์—ˆ์„ ๊ฒฝ์šฐ์—๋Š” ์—ฐ์ฒด๋ฃŒ๋ฅผ ๋ฐ›๋Š”๋‹ค.
         ใ„น) ๋Œ€์—ฌ๋ฃŒ ์‹ /๊ตฌ ์ฐจ๋“ฑ ๊ด€๋ฆฌ.
      5. ํฌ์ธํ„ฐ ๊ด€๋ฆฌ ์„œ๋น„์Šค
         ใ„ฑ) ํšŒ์›์—๊ฒŒ ๋Œ€์—ฌ 1ํšŒ๋‹น 1์ ์”ฉ ํฌ์ธํŠธ ์ ์ˆ˜๋ฅผ ๋ถ€์—ฌํ•˜์—ฌ 10์ ์ด ๋˜๋ฉด ๋ฌด๋ฃŒ๋กœ TAPE ํ•˜๋‚˜ ๋Œ€์—ฌ ์„œ๋น„์Šค
      6. ๊ด€๋ฆฌ์ž ๊ด€๋ฆฌ
         ใ„ฑ) ์ผ๋ณ„ , ์›”๋ณ„, ๋…„๋ณ„ ๋งค์ถœ์•ก ์†์‰ฝ๊ฒŒ ํŒŒ์•….
         ใ„ด) ๋น„๋””์˜ค ํ…Œ์ดํ”„์˜ ๋Œ€์—ฌ ํšŒ์ˆ˜ ํŒŒ์•….
         ใ„ท) ์—ฐ์ฒด๋ฃŒ ๊ด€๋ฆฌ
         ใ„น) ๋ฏธ๋‚ฉ ํšŒ์› ๊ด€๋ฆฌ.
         ใ…‚) ์ง์› ๊ด€๋ฆฌ( ๊ทผ๋ฌด ์‹œ๊ฐ„, ์ž„๊ธˆ ์ž๋™ ๊ณ„์‚ฐ ) / ์ž„๊ธˆ + ๊ทผํƒœ๊ด€๋ฆฌ
         ใ……) ์ฒด์ธ์ ์„ ํ™•์žฅํ•ด ์šด์˜ํ•˜๊ณ  ์ž ํ•จ.  


            

  • ๋„ค์ด๋ฒ„ ๋ธ”๋Ÿฌ๊ทธ ๊ณต์œ ํ•˜๊ธฐ
  • ๋„ค์ด๋ฒ„ ๋ฐด๋“œ์— ๊ณต์œ ํ•˜๊ธฐ
  • ํŽ˜์ด์Šค๋ถ ๊ณต์œ ํ•˜๊ธฐ
  • ์นด์นด์˜ค์Šคํ† ๋ฆฌ ๊ณต์œ ํ•˜๊ธฐ