<312D31BCD3C7A5C1F62E687770>

Size: px
Start display at page:

Download "<312D31BCD3C7A5C1F62E687770>"

Transcription

1

2 개정판머리말 데이터베이스설계분야에처음입문하는분들을위해가장쉽게이해할수있는교재를만들어보자는의도하에초판이나온지도여러해가지났습니다. 그동안개정의필요성이꾸준히제기되어이번에개정판을새롭게내게되었습니다. 이번개정판은초판의기본적인내용을유지하면서데이터베이스설계환경의변화에따라변경이필요한부분들을고쳐담았습니다. 주요개정내용은다음과같습니다. 1. 초판에서사용된설계도구인 Case Studio 도구의버전을업그레이드하였습니다. 현재 Case Studio 는 Toad Data Modeler 라는제품명으로개명하여사용되고있으며, 엔티티를한꺼번에 6개이상저장할수없었던제약이사라져보다편리하게실습에활용할수있게되었습니다. 몇가지부가기능도추가되어설계작업시유용하게활용할수있습니다. 2. 데이터베이스설계의예제로사용하던 ʻ비디오대여점관리업무ʼ를 ʻ도서관관리업무ʼ로전환하여설명하였습니다. 현재는비디오대여점이거의사라져가고있어서예제의내용이피부에와닿지않는다는지적이있어서바꾸게되었습니다. 비디오대여점업무와도서관관리업무는유사한점이많아초판의비디오대여점업무를이해한분들은쉽게도서관관리업무도이해할수있을것입니다. 3. 연습문제를보강하였습니다. 각단원별로연습문제가부족하다고판단되거나보다많은연습이필요하다고판단되는단원을집중적으로보강하였습니다. 데이터베이스설계는이론에대한이해만으로는설계능력을기르기어렵기때문에다양한연습문제해결을통해연습해보는것이중요합니다. 머리말 3

3 4. 실전예제를추가하였습니다. 각단원별로실제현실세계에서접할수있는문제들을하나씩골라서설계문제를해결해가는과정을단계적으로설명하였습니다. 독자들은실전예제의이해를통해현실감있는설계능력을기를수있을것입니다. 이번개정판이처음데이터베이스설계를접하는모든분들에게유익한책이되기를바라며그동안의관심에감사를드립니다. 2012년 12월오세종 4 머리말

4 머리말 오늘날웹을포함한응용프로그램의개발에있어서데이터베이스를제외하고생각하기는어려울정도로데이터베이스가일반화되었고, 데이터베이스연동프로그래밍은프로그램개발자들이알아야할기본지식중의하나가되었습니다. 그러나많은개발자들은데이터베이스를데이터를저장하기위한수단정도로이해하고있으며, 몇개의간단한테이블을만들고여기에 SQL 문을이용해데이터를저장하거나프로그램으로불러오는정도의수준에서데이터베이스를이용하고있는실정입니다. 그러나데이터베이스를효과적으로이용하기위해서는데이터베이스설계에대한지식이있어야합니다. 개발하고자하는시스템의규모가커지면커질수록데이터베이스를효율적으로설계하는일이중요해집니다. 그러나데이터베이스를설계하는일은쉬운일이아닙니다. 단순히설계에대한지식이있다고할수있는일이아니기때문입니다. 마치 Java 프로그래밍에대한문법을알고있다고해서 Java 프로그래밍을잘할수있는것은아닌것과마찬가지입니다. 그동안데이터베이스설계에관한책들이국내에많이소개되었습니다. 활용중심의책들은설계에대한이론적인설명이부족하고, 실무적관점에서쓰여진책들은유용한지식들을많이담고있지만처음설계를배우고자하는사람이이해하기에는내용이방대하고어려운경우가많았습니다. 번역서의경우번역의한계와역자가원서의내용을충분히이해하지못한가운데직역한것들이많아역시내용의이해가쉽지않았습니다. 데이터베이스설계에관심을가지고있는이들이쉽게이해할수있으면서도이론적으로, 실무적으로단단한기반을제공할수있는저서가필요한상황입니다. 본저서는이러한필요성을충족시키고자노력하였습니다. 설계에관련된이론적인부분들을최대한쉽게설명하였으며, 다양한예제를통하여독자의이해를돕고자노력하였습니다. 또한설계이론의습득에그치지않고학습과정동안다양한실습및 머리말 5

5 머리말 그룹프로젝트를통하여설계를직접경험할수있도록하였습니다. 따라서본저서는처음데이터베이스설계를배우고자하는이들에게좋은입문서가될것입니다. 최근각대학에서는공학교육인증제의시행에따라공학설계에관련된교과목을보강하고자노력하고있습니다. 그러나마땅히설계과목으로할수있는과목이부족하여어려움을겪고있는실정입니다. 데이터베이스의설계는문제의분석부터시작하여설계및구축에이르는전과정을포함하고있기때문에훌륭한공학설계과목이될수있습니다. 본저서는공학설계과목이필요로하는요소들을포함하고있으며강의자들에게는강의자료및프로젝트자료가제공될것입니다. 본저서를통하여데이터베이스를배우고자하는이들이조금이나마도움을얻게되기를바라며, 저서의내용에대해서또는개선의견이있다면언제든지환영합니다. 2005년 12월오세종 6 머리말

6 이책을강의하는분들께 본교재는머리말에소개한바와같이공학인증의설계교과과정을위해저술되었으며, 총 16주강의를할수있도록교재를구성하였습니다. 설계교과목은이론강의보다는설계실습을중요시하기때문에이론강의와설계실습의비율을 3:7 또는 4:6 정도로하시면됩니다. 설계실습은이론강의에이어서진행하며 3인을 1조로편성하여조별로실습을하도록합니다. 설계실습을위해매시간실습과제가주어지고, 학생들은수업을마칠때완성된과제를제출하여평가를받도록합니다. 설계실습은대부분종이와연필만있으면가능하기때문에특별한시설을필요로하지않는장점이있습니다. 수업시간에진행하는설계실습과는별도로각조는조별프로젝트를한학기동안수행하여프로젝트보고서 ( 설계포트폴리오 ) 를제출하여야하며기말고사직전에발표회를갖습니다. 강의하시는분들을위하여생능출판사홈페이지를통해충분한수업자료를제공해드릴예정이며, 매년자료가새롭게추가될것입니다.( 상세한강의계획서, 설계실습자료, 프로젝트보고서양식및샘플등 ) 다음은 16주강의계획서의요약입니다. ʻ4장모델링도구ʼ의경우도구사용법을설명하는것이기때문에강의일수가모자라는경우학생들이각자해보는것으로하고생략하여도무방합니다. 이책을강의하는분들께 7

7 주이론강의설계실습조별프로젝트 1 과목소개및조편성 ( 강의계획서배부 ) 2 1 장관계형데이터베이스주요개념 장정보시스템구축절차와데이터베이스설계설계실습 #1 4 3 장데이터모델링의주요개념설계실습 #2 5 4 장모델링도구설계실습 #3 6 5 장업무분석설계실습 #4 7 6 장엔티티의정의설계실습 #5 8 중간고사 9 7 장식별자, 관계, 속성의정의설계실습 #6 프로젝트계획서제출 10 8 장정규화설계실습 #7 중간보고서제출 11 9 장도메인과용어사전의정의설계실습 # 장모델의검토설계실습 # 장논리적설계를물리적설계로전환하기설계실습 # 장데이터베이스의구축설계실습 #11 15 조별프로젝트발표회최종보고서제출 16 기말고사 8 이책을강의하는분들께

8 차례 PART 01 데이터베이스개요 제1장관계형데이터베이스의주요개념 데이터베이스의역사 관계형데이터베이스용어 기본키와외래키 뷰 SQL 언어 39 연습문제 47 제2장정보시스템구축절차와데이터베이스설계 추상화와모델링 데이터베이스설계의개념 정보시스템구축과데이터베이스설계 데이터베이스설계의상세과정 66 연습문제 68 PART 02 논리적데이터베이스설계 제3장데이터모델링의주요개념 개요 엔티티 속성 관계 주식별자와외래식별자 ERD 표기법 90 연습문제 93 실전예제 96 차례 9

9 제4장모델링도구 모델링도구개요 모델링도구따라하기 관계의설정 ERD를레벨별로보기 주석문의삽입 126 연습문제 128 제5장업무분석 개요 문서및자료수집 담당자인터뷰 분석내용의정리 업무분석사례 : 도서관관리 144 연습문제 158 제6장엔티티의정의 개요 엔티티다시보기 엔티티도출과정 업무기술서에서엔티티도출의예 장부 / 전표에서엔티티도출의예 엔티티도출의예 : 도서관관리 175 연습문제 178 실전예제 182 제7장식별자, 관계, 속성의정의 개요 주식별자의정의 관계 / 외래식별자의정의 업무규칙의정의 차례

10 차례 7.5 속성의정의 관계, 식별자, 속성의도출사례 : 도서관관리 214 연습문제 217 실전예제 221 제8장정규화 정규화개요 정규화과정 정규화에서엔티티의분리 정규화가필요없는설계기법 정규화사례 : 도서관관리 239 연습문제 242 실전예제 245 제9장도메인과용어사전의정의 도메인의정의 용어사전의정의 모델링도구를이용한도메인의작성 도메인, 용어사전의사례 : 도서관관리 264 연습문제 266 제10장모델의검토 개요 엔티티의검토 속성의검토 관계의검토 M:N 관계의해소 프로세스모델과의통합검토 모델의검토사례 : 도서관관리 286 연습문제 287 실전예제 290 차례 11

11 PART 03 물리적데이터베이스설계 제11장논리적설계를물리적설계로전환하기 개요 테이블, 컬럼, 키로의전환 반정규화 뷰의설계 인덱스의설계 테이블기술서 물리적설계의예 : 도서관관리 316 연습문제 321 제12장데이터베이스의구축 개요 수작업에의한데이터베이스구축 도구에의한데이터베이스구축 역공학에의한데이터베이스분석 사용자, 역할, 권한관리 DB 구축의예 : 도서관관리 359 연습문제 368 APPENDIX 부록 01 설계사전 웹사이트게시판을위한 DB 설계 Toad Data Modeler 사용매뉴얼 mysql 사용매뉴얼 ODBC 설치방법 407 찾아보기 차례

12 PART 01 데이터베이스개요 제 1 부의목표 제1장관계형데이터베이스의주요개념제2장정보시스템구축절차와데이터베이스설계 데이터베이스의기본개념에대해이해한다. 정보시스템에서데이터베이스의역할에대해이해한다. 정보시스템구축절차와데이터베이스의설계절차와의관계성을이해한다. 데이터베이스를설계한다는것이무엇인지를이해한다. 추상화과정으로서의데이터모델링에대해이해한다. P A R T 1

13

14 CHAPTER 관계형데이터베이스의주요개념 Database CHAPTER 관계형데이터베이스의주요개념 단원목표 데이터베이스의필요성에대해이해한다. 관계형데이터베이스의기본용어를익힌다. 기본키와외래키의개념을이해한다. 기본적인 SQL 문법을숙지한다. 15

15 PART 1 데이터베이스개요 1.1 데이터베이스의역사 파일시스템의위기컴퓨터분야에서어떤개념을이해하고자할때좋은방법중의하나는그개념이나오게된배경과역사를살펴보는것이다 년최초의전자식컴퓨터인에니악 (ENIAC) 이개발된이후컴퓨터발전의역사는데이터처리의발전사와그맥을함께하였다 년대까지컴퓨터시스템을지칭하는데사용되었던 EDPS(Electronic Data Processing System) 라는용어는컴퓨터와데이터처리가얼마나밀접한관계에있었는지를보여준다. 제1세대컴퓨터시스템들은소프트웨어나저장장치등의개발이부족했기때문에주로기술분야의계산, 자료분류등에사용되었다. 운영체제가도입되고 FORTRAN, COBOL 과같은프로그래밍언어를사용하는제2세대컴퓨터가등장하면서부터컴퓨터시스템은자료를분석하고처리하는일에본격적으로사용되기시작하였다. 이시기에도입된 ʻ파일 (File)ʼ 개념은자료를저장하는기본적인방법으로사용되었으며오늘날까지도널리이용되고있다. 파일에기초하여자료나정보를처리하는시스템을파일시스템 (file system) 이라고부른다. < 그림 1.1> 은파일을이용한일반적인자료처리의모델을보여준다. 파일시스템에서는개별응용프로그램이직접파일에접근하여기록, 갱신, 삭제를할수있으며, 파일에있는데이터의올바른관리여부는전적으로응용프로그램에달려있다. < 그림 1.1> 파일시스템에기초한자료처리모델 컴퓨터시스템이일반적인비즈니스업무에효과적으로적용될수있음이알려지면서각기업들은앞다투어정보시스템을구축하기시작하였다. 그결과컴퓨터의저장장치에는방대한양의데이터들이축적되기시작하였다. 파일에기초한정보시스템에서데이터의급속한증가는하드웨어나소프트웨어의성능향상에도불구하고다음과같은문제점들을드러내었다. 16

16 01 관계형데이터베이스의주요개념 CHAPTER 데이터종속성 (data dependency) 데이터종속성이란데이터를사용하는프로그램의구조가데이터구조 ( 파일구조 ) 의영향을받는다는것을의미한다. < 그림 1.2> 와같이파일에서학생정보를읽어처리하는 COBOL 프로그램을생각해보자. 이경우응용프로그램은파일에저장된학생정보레코드 (record) 에대한구조를기술하는부분을포함하며한레코드가읽혀오면이구조정보에따라여러필드 (field) 들로분리하여처리하게된다. 어떤이유에의해학생의이름을저장하는필드의길이를현재 20자리에서 30자리로늘려야하는경우가발생한다면학생정보파일을읽어서처리하는모든응용프로그램을변경해야하는문제가생긴다. 만일 10개의프로그램중 9개는변경을했는데나머지 1개의프로그램을변경하지못한채로시스템을운영하게되면, 변경되지못한프로그램이학생정보파일에잘못된데이터를기록하여다른프로그램에문제를일으킬수있다. 이와비슷하게학생정보파일에서필드의순서를바꾸어저장하고자하는경우에도이를이용하는모든프로그램을변경해야한다. 이와같이데이터의구조변화에따라응용프로그램이영향을받을때 ʻ프로그램이데이터에종속되어있다ʼ라고말한다. 이와같은데이터종속성은프로그램의개발과유지보수를어렵게한다. < 그림 1.2> 학생정보를읽어처리하는 COBOL 프로그램 데이터무결성 (data integrity) 의침해데이터무결성이란저장된데이터의내용이본래의도했던데이터의형식, 범위를준수해야한다는성질이다. 예를들면 < 그림 1.2> 의학생정보파일에서나이 (AGE) 필드는숫자형식이어야하고음수가아닌양수이어야한다. 또한그범위는 20~60 사이가일반적일것이다. 이러한조건을위배하는데이터가저장될때데이터의무결성이침해되었다고말한다. 파일을이용하는과거의정보시스템에서는데이터무결성을지켜야할책임이프로 17

17 PART 1 데이터베이스개요 그래머에게있었다. 즉, 응용프로그램에서사용자가데이터를올바르게입력했는지검사하는기능을구현해야했다. 만일응용프로그램이올바르지않은데이터가저장되는것을허용하게된다면저장된데이터에근거해서어떤판단을내려야하는경우문제가된다. 정보화사회에서는인간의삶이많은부분컴퓨터시스템에저장된데이터에의존하고있기때문에데이터무결성의침해는매우심각한문제가된다. 데이터중복성 (data redundancy) 데이터중복성이란같은내용의데이터가여러곳에중복하여저장되는것을의미한다. 과거의정보시스템에서는개별부서나응용프로그램에서필요로하는데이터파일을각각만들어사용하는일이많았고, 그결과동일데이터가여러파일에중복저장되는일이많았다. 데이터가중복저장되면저장공간의낭비라는문제외에도다음에설명할데이터의불일치, 보안의어려움과같은문제들이발생할수있다. 데이터불일치 (data inconsistency) 데이터불일치란중복저장된데이터들이서로일치하지않는것을의미한다. 예를들어이사를하게되면변경된주소를학교나직장, 은행, 가입된웹사이트등에통보를해야한다. 그렇지않으면우편물이이전주소로배달될것이다. 이와같은현상은주소정보가여러기관에중복저장되어있다는데서기인한다. 하나의조직내에서도이와같은문제가발생할수있다. 어떤학생이교무과에휴학신청을하여휴학을했는데, 그사실을모르는재무과에서는등록금고지서를그학생에게발송할수있다. 이는교무과의학생정보와재무과의학생정보가각각관리되면서불일치할때발생할수있는문제이다. 데이터표준화 (data standard) 의어려움일정규모이상의정보시스템을개발하기위해서는많은수의개발자들이협력작업을해야한다. 이러한환경에서는작업방법의표준화가필수적이다. 예를들면개발자 A는응용프로그램에서학생이름을 ʻS-NAMEʼ 으로길이는 20자리로사용하는데, 개발자 B는학생이름을 ʻSNMEʼ 로길이는 15자리로사용한다면제3자가프로그램을이해하기도어렵고두응용프로그램간의호환성에도문제가된다. 학생이름을지칭하고표현하는표준화된규칙이있다하더라도응용프로그래머가이를지키지않을수있는여지가있기때문에과거의정보시스템개발환경에서는표준화가어려운문제였다. 18

18 01 관계형데이터베이스의주요개념 CHAPTER 데이터보안성 (data security) 의결여데이터가저장되어있는파일은그내용이 Text 형식이나잘알려진형식으로저장되기때문에응용프로그램없이도쉽게파일을열어내용을볼수가있고파일의공유를위해접근이쉬운위치에파일을저장했기때문에보안을유지하기가어려웠다. 현대의정보시스템에는기업의영업비밀이나고객의사생활정보와같은보안을필요로하는데이터가많이저장되기때문에보안성의결여는심각한문제가된다. < 그림 1.3> 파일시스템의위기 이상의문제들은파일을이용하는정보시스템에서는해결하기어려운문제였다. 이를해결하기위한대안으로제시된것이데이터베이스이다 데이터베이스의등장파일시스템의단점을극복하면서도다수의사용자들이정보를공유할수있어야한다는시대적요구에부응하기위하여연구자들은데이터베이스개념을제안하였다. 데이터베이스의철학은간단하다. 첫째는파일형태로여기저기에흩어져있는데이터, 정보들을하나로모아관리하자는것이고, 둘째는응용프로그램들이운영체제를통해시스템자원을이용하는것처럼모아놓은데이터들을관리하고사용자 ( 응용프로그램 ) 와데이터사이에인터페이스역할을할수있는 S/W를만들자는것이다. 이때모아놓은데이터의집합을데이터베이스 (database), 데이터를관리하는 S/W를데이터베이스관리시스템 (DBMS: Database Management System) 이라부른다. 또한데이터베이스에기초해서데이터나정보를처리하는체제를데이터베이스시스템 (database system) 이라고부르는데, 이는파일시스템에대응되는개념이다. < 그림 1.4> 는데이터베이스시스템의개요를보여준다. 19

19 PART 1 데이터베이스개요 < 그림 1.4> 데이터베이스시스템의개요 데이터베이스라는용어는 1963년 6월미국 SDC(System Development Corporation) 가산타모니카에서개최한 ʻDevelopment and Management of a Computer-centred Data Baseʼ 심포지엄제목에서처음공식적으로사용하였다. 현대적인의미의데이터베이스개념을확립한사람은당시제너럴일렉트릭 (General Electric) 사에있던 C. Bachman 으로, 그는 1963년 IDS(Integrated-Data Store) 라는데이터베이스관리시스템을만들었다. 데이터베이스의역사를살펴보면 1960 년대와 1970 년대초까지는 IBM의 IMS, MRI System Corp. 에서설계제작한 System 2000 등으로대표되는계층형 (hierarchical) 데이터베이스시스템과 Calliname Corp. 의 IDMS, CINCOM System 의 TOTAL 등의네트워크 (network) 데이터베이스시스템이주도를하였다. 이후 1970년 E. F. Codd에의해제안된관계형 (relational) 데이터모델은튼튼한이론적기반과선언적질의를통한사용의용이성을바탕으로기존의계층형데이터베이스와네트워크데이터베이스를대체하기시작하였다. 현재는상업용데이터베이스시스템의대부분을관계형시스템이차지하고있다. 데이터베이스시스템은파일시스템에비하여다음과같은특징을갖는다. 데이터독립성 (independency) 지원데이터베이스시스템에서는사용자혹은응용프로그램이직접데이터베이스에접근할수없고반드시 DBMS 를통해서만접근이가능하다. DBMS 는데이터베이스내에있는데이터의물리적, 논리적변화가응용시스템에영향을미치지않도록함으로써데이터독립성을보장한다. 20

20 01 관계형데이터베이스의주요개념 CHAPTER 데이터무결성유지 DBMS 는데이터베이스내에저장될데이터에대하여데이터의타입 (type), 길이, 값의범위등에대한정보를가지고있으며, 이를위반하는데이터가들어올경우처리를거절함으로써데이터의무결성을지원한다. 데이터중복성및불일치최소화데이터베이스내의데이터는한개인의관점이나특정부서의관점에서관리되는것이아니라데이터베이스를공용하는조직전체의관점에서관리를한다. 그때문에동일데이터가여러부서에서사용하는경우이를하나로관리함으로써중복성을방지하며그결과로서중복된데이터간의불일치문제를해결한다. 데이터표준화의용이성데이터베이스시스템에는응용프로그래머와는별도의데이터베이스관리자 (DBA) 가존재하며 DBA는데이터베이스의설계과정을주도함으로써부서간이해를조정하고관리될데이터를표준화시킬수있다. 또한 DBMS 는데이터의구조에관한정보 ( 예 : 테이블이름, 컬럼이름, 컬럼의데이터타입 ) 를가지고있으며응용프로그램에서데이터에접근하기위해서는 DBMS 가가지고있는구조정보에따라야하기때문에자연스럽게표준화가이루어질수있다. 높은데이터보안성 DBMS 는사용자의권한에따라데이터베이스내에있는데이터에대한접근을제한할수있다. 또한저장된데이터베이스는일반적으로 DBMS 를통하지않고는외부에서내용을알아내기매우어렵기때문에데이터가보호될수있다. 데이터공유 (data sharing) 의용이성데이터베이스시스템의기본철학이데이터를통합관리하고이를여러부서, 사용자들이공유하도록하는것이다. DBMS 는여러사용자의요구를동시적으로처리할수있는능력을가지고있으며데이터를쉽게이용할수있는수단을제공한다. 21

21 PART 1 데이터베이스개요 < 그림 1.5> 데이터베이스시스템의장점 관계형데이터베이스모델사용자의입장에서보았을때데이터가어떤모양으로표현되고관리되는가에따라데이터베이스는계층형모델, 네트워크모델, 관계형모델로분류된다. 최근에는객체지향 (object-oriented) 모델, 객체-관계형 (object-relational) 모델이발표되었으나상용 DBMS 제품에서는관계형데이터베이스모델이압도적으로많이사용되고있다. 관계형모델의특징은 < 그림 1.6> 과같이데이터가테이블형태로표현되며, 사용자가데이터를쉽게다룰수있도록해주는질의어 (SQL) 가제공된다는것이다. 테이블형태로표현된데이터는단순해서누구나쉽게이해할수있다. SQL은자연어에가까운문법을가지고있어서배우기쉽고, 데이터를어떻게 (how) 가져올것인가대신에어떤 (what) 데이터를원하는지만기술해주면되기때문에사용자나개발자의입장에서는데이터를다루는작업이매우단순해진다. 또한 SQL 명령어나문법은표준화되어있기때문에대부분의명령어는모든관계형데이터베이스제품에서공통적으로사용될수있다. 22

22 01 관계형데이터베이스의주요개념 CHAPTER Oracle 제품명제조사비고 MS SQL Server Informix Adaptive Server Enterprise DB2 Progres Ingres < 표 1.1> 상용관계형데이터베이스제품들 Oracle Microsoft Informix software Sybase IBM Progres Software Corporation Ingress Corporation 임베디드 DBMS 분야에서강세 MySQL MySQL AB 공개용버전제공 Access Microsoft 개인용 EMPLOYER empno ename dept tel salary 100 김기훈 영업 홍성범 기획 이만수 영업 강나미 생산 영업부에속한모든사원의이름과전화번호를보이시오 SELECT ename, tel FROM employer WHERE dept = ' 영업 ' < 그림 1.6> 사원테이블과질의의예 본저서에서다루는데이터베이스설계는어떤데이터베이스모델을선택하는가에따라방법론이달라질수있다. 현재까지는관계형데이터베이스제품이주류를이루고있으므로관계형모델에기초한방법론을따르도록한다. 관계형데이터베이스에대한설계에익숙해지면객체지향데이터베이스의설계개념에대해서도쉽게이해할수있게된다. 관계형데이터베이스를설계할수있기위해서는관계형모델의개념을이해하고있어야한다. 1장의나머지부분에서는관계형데이터베이스설계를위해반드시알아야하는내용들을요약하여설명한다. 23

23 PART 1 데이터베이스개요 1.2 관계형데이터베이스용어 앞에서설명한바와같이관계형모델에서는데이터가테이블형태로표현된다. < 그림 1.7> 을통하여테이블과관련된용어들을설명하기로한다. < 그림 1.7> 에서사용한용어들은 E. F. Codd 가정의한것으로오늘날일반적으로사용하는용어와는차이가있다. < 그림 1.7> 학생릴레이션 릴레이션 (relation) 릴레이션은우리가지금까지테이블이라고지칭했던것으로관계형데이터베이스에서정보를구분하여저장하는기본단위가된다. 예를들면학생에관한정보를저장하기위해서는 STUDENT 릴레이션이필요하고과목에대한정보를저장하기위해서는 SUBJECT 라는릴레이션이필요하다. 릴레이션들은서로를구분할수있는이름을가지며동일한데이터베이스내에서는같은이름을가진릴레이션이존재할수없다. 일반적으로데이터베이스는많은수의릴레이션들을포함하게된다. 24

24 01 관계형데이터베이스의주요개념 CHAPTER 속성 (attribute) 하나의릴레이션은현실세계의어떤개체 (entity) 를표현하고저장하는데사용되는데, 표현할개체의구체적인정보항목에해당하는것이속성이다. 현실세계의개체 ( 예 : 학생, 교수, 과목, ) 들은많은속성들을가지는데, 그중에서관리해야할필요가있는속성들만을선택하여릴레이션에포함시킨다. 속성역시고유한이름을가지며동일릴레이션내에서는같은이름의속성이존재할수없다. 단, 릴레이션이다르면같은속성이름을공통으로사용할수있다. 튜플 (tuple) 릴레이션이현실세계의어떤개체를표현한다면튜플은그개체에속한구성원들개개의정보를표현한다고할수있다. 예를들면 ʻ학생ʼ은개체를나타내는이름이고 ʻ김철수ʼ, ʻ박선하ʼ, ʻ안미희ʼ, 등은 ʻ학생ʼ 개체의구성원이라고할수있다. 개체의각구성원에대해관리해야할정보의항목은동일하지만그내용은서로다르므로이를튜플이라는형태로릴레이션안에표현하는것이다. 한릴레이션에포함된튜플의개수는시간에따라변할수있다. 한릴레이션은적게는수십개, 많게는수십만개의튜플을포함할수있다. < 그림 1.7> 의 STUDENT 릴레이션에서첫번째튜플의의미는학번이 ʻ ʼ인학생의이름은 ʻ김철수ʼ이고, 전공은 ʻ국문학ʼ이며, 전화번호는 ʻ ʼ 이고, 나이는 ʻ20ʼ세임을나타낸다. 김철수라는동일인의정보를담고있는튜플은 STUDENT 릴레이션내에서오직하나만존재해야한다 ( 동명이인의경우는서로다른사람으로간주 ). 도메인 (domain) 도메인이란릴레이션에포함된각각의속성들이가질수있는값들의집합이라고할수있다. 도메인이라는개념이필요한이유는릴레이션에저장되는데이터값들이본래의도했던값들만저장되고관리되도록하는데있다. 예를들면 ʻ성별ʼ이라는속성이있다면이속성이가질수있는값은 { 남, 여 } 이다. 데이터베이스설계자는성별의도메인으로 ʻSEXʼ를정의하고그값으로 { 남, 여 } 를지정한뒤, ʻ성별ʼ이라는속성은 ʻSEXʼ 도메인에있는값만을가질수있다고지정해놓으면사용자들이실수로남, 여이외의값을입력하는것을 DBMS 가막을수있다. 도메인의이름은속성이름과같을수도있고다를수도있다. 또한하나의도메인을여러속성에서공유할수있다. 도메인의유용성에도불구하고본래의관계형모델에서의도했던도메인의개념을 100% 구현하고있는 DBMS 제품은없다. 그이유는 ʻ성별ʼ, ʻ색상ʼ, ʻ전공ʼ 등과같이도메인에포함해야할값을미리알수있고선언해놓을수있는속성도있지만 ʻ이 25

25 PART 1 데이터베이스개요 름ʼ, ʻ주소ʼ와같이도메인에포함될값의경우의수가너무많아서미리선언할수없는속성도있기때문이다. 현실적으로는특정속성에대해그속성과관련없는값이들어오는것을완벽하게막을수있는방법은없다. DBMS 제품들이기본적으로제공하는방법은각속성에대해데이터타입과길이를미리지정하여그에맞는값들만들어오도록하는것과, 데이터값의범위를지정하여범위에맞는값만저장되도록하는것이다. 릴레이션, 튜플, 속성등의용어는과거에파일시스템을사용하던개발자들이사용하던용어와도다르고, 일반사용자들에게익숙하지않기때문에상용 DBMS 제품이일반화되면서보다쉬운용어가등장하였다. < 표 1.2> 는이를정리한것인데, 오늘날에는여러용어가혼용되고있으므로이름은다르지만유사개념인용어들을알고있는것이필요하다. 본저서에서는앞으로테이블, 컬럼, 튜플이라는용어를사용하기로한다. < 표 1.2> 용어대비표 E. F. Codd의용어 File 시스템의용어 자주사용되는용어 릴레이션 (relation) 파일 (file) 테이블 (table) 속성 (attribute) 필드 (field) 열 (column), 컬럼 튜플 (tuple) 레코드 (record) 행 (row) 1.3 기본키와외래키 데이터베이스설계를위해반드시이해해야할개념중의하나가기본키 (primary key) 와외래키 (foreign key) 이다. 우리는이미일상생활에서 ʻ키 (key)ʼ라는용어를열쇠의의미로사용하고있는데, 데이터베이스에서의키개념과는다르기때문에키에대해이해하는데어려움이있다. 키의개념에대해설명하기전에 < 그림 1.8> 을통하여키의필요성에대해이해하도록한다. 26

26 01 관계형데이터베이스의주요개념 CHAPTER < 그림 1.8> 중복된튜플의삽입 < 그림 1.8> 은 STUDENT 테이블에두개의새로운튜플을삽입하려고하는상황을표현한것이다. 1번튜플은각컬럼의값이 STUDENT 테이블의두번째튜플과완전히일치한다. 만일 1번튜플이정상적으로삽입된다면 STUDENT 테이블은중복된두개의튜플을가지게되는데, 이렇게되면여러문제가발생할수있다. 예를들면전체학생수가몇명인지를알아내기위해튜플수를카운트하는연산을수행시키면중복된튜플이각각카운트되므로실제학생수보다더많은학생수를반환하게되므로문제가된다. 2번튜플은 ʻdeptʼ 컬럼이 STUDENT 테이블의두번째튜플과다르기때문에중복된튜플의삽입은아니다. 그러나 2번튜플의내용을보면학번이 인박선하학생에대한정보이고 STUDENT 테이블의두번째튜플역시동일학생에대한정보이므로의미적으로중복이라고할수가있다. 2번튜플이정상적으로삽입된다면 ʻ학번이 인학생의전공은무엇인가ʼ라는질의에대하여 DBMS 는 ʻ국문학ʼ 과 ʻ영문학ʼ이라는답을할것이고, 사용자는어느것이맞는지혼란에빠질것이다. 이와같은문제를방지하기위하여관계형데이터베이스에서는중복된튜플의삽입을막아야할필요가있다. 그런데 DBMS 를구현해야하는입장에서보면중복된튜플이삽입되는지를확인하는것은쉬운일이아니다. 1번튜플이삽입되는경우는이미존재하는모든튜플에대해모든컬럼이같은지를일일이검사해보면중복여부를알수있지만, 튜플수가수십만개에달하는경우는비교시간이매우오래걸리기때문에현실적인방법이아니다. 2번튜플의경우는의미적중복이지만데이터의의미를이해할수없는 DBMS 로서는 2번튜플이의미적으로중복인지를알아낼방법이없다. 27

27 PART 1 데이터베이스개요 그렇다면어떻게중복여부를효과적으로확인할수있을까? 이에대한답이바로키 (key), 보다정확히말하면후보키 (candidate key) 이다. 후보키를간단히정의하면다음과같다. 후보키 (candidate key) 란테이블에서각튜플을구별하는데기준이되는하나혹은그이상의컬럼들의집합이다 ( 후보키는테이블에있는각튜플을고유하게식별할수있어야한다 ). < 그림 1.8> 의 STUDENT 테이블을살펴보자. STUDENT 테이블은학생한명한명의정보를관리하기위한것이다. 현실세계에서학생한명한명을무엇으로구분할수있는지를생각해보자. 이름은동명이인이존재할수있으므로구분의기준이될수없다. 전공역시한전공이같은학생이많으므로구분의기준이될수없다. 같은이유로전화번호나나이역시구분의기준이될수없다. 그래서현실세계에서는학생한명한명을구분하기위해학번 ( 학생번호 ) 이라는것을부여하여사용한다. 따라서 STUDENT 테이블에서 sid 컬럼이각튜플을구분하는기준으로사용될수있으며, 이때 sid를 STUDENT 테이블에대한후보키라고부른다. DBMS 는새로운튜플이릴레이션에삽입될때새로운튜플의후보키값이기존의튜플들의후보키값과동일한지여부를비교하여중복여부를확인하게된다. 후보키값의비교는모든컬럼들을비교하여보는것에비해시간이절약되고, 인덱스기법을이용하면매우빠른시간에중복여부를알아낼수있다. < 그림 1.8> 의경우 1, 2번튜플모두후보키값이이미존재하고있으므로중복으로간주되어 DBMS 는삽입연산을거절하게된다. 키는일반적으로테이블이생성될때지정한다. 후보키 (candidate key) 는기본키 (primary key) 와대체키 (alternate key) 로구분된다. < 그림 1.9> 를통해각각의개념을이해하도록한다. < 그림 1.9> 후보키, 기본키, 대체키 28

28 01 관계형데이터베이스의주요개념 CHAPTER < 그림 1.9> 의새로운테이블에는주민등록번호 (pid) 컬럼이추가되었다. 이경우학번 (sid) 도각튜플을구분하는기준으로사용될수있지만, 주민등록번호도우리나라국민이라면개인별로유일하기때문에튜플을구분하는기준으로사용될수있다. 이와같이하나의테이블은한개이상의후보키를가질수있다. < 그림 1.9> 의경우는 sid와 pid 컬럼이후보키가될수있다. 설계자는후보키중어느것을튜플을구분하는기준으로사용할지를선택해야하는데이때선택된후보키를기본키, 선택되지않은후보키를대체키라고한다. 후보키중어느것을기본키로정할것인가에는정해진규칙은없으나대체로데이터의길이가짧고현실세계에서빈번히이용하는컬럼을기본키로정한다. < 그림 1.9> 의경우는일반적으로학교에서는주민등록번호보다는학번이더많이사용되므로학번을기본키로정하는것이유리하다. 어떤릴레이션에후보키가하나만존재한다면당연히그후보키가기본키가된다. 기본키를지정하는문제는데이터베이스설계에있어서매우중요한부분이므로나중에자세히설명하도록한다. 후보키, 기본키, 대체키와더불어서키와관련된용어가하나더있는데그것은복합키 (composite key) 이다. 앞에서살펴본릴레이션들은하나의컬럼이후보키의역할을하지만어떤릴레이션에서는두개이상의컬럼이합쳐져야만후보키의역할을할수있다. 이렇게두개이상의컬럼이모여키의역할을하는경우를복합키라고부른다. < 그림 1.10> 은복합키의예를보여준다. < 그림 1.10> 복합키의예 < 그림 1.10> 에서 STUDENT_CLUB 테이블은학생들이가입한동아리정보를관리하는테이블이다. 튜플들에서보는바와같이한학생은여러동아리에가입하는것이가능하다. STUDENT_CLUB 테이블에서후보키를찾아보자. 먼저학번 (sid) 이키가될수있는지검토해본다. 만일학번이키가될수있다면각튜플의학번컬럼은중 29

29 PART 1 데이터베이스개요 복된값이들어올수없으므로유일해야한다. 그런데한학생은여러취미가있을수있으므로학번 은첫번째와두번째튜플에저장되어있다. 즉, 은튜플들사이에서유일하지않으며, 결과적으로후보키의자격이없다. 이번에는동아리이름 (club) 이키가될수있는지살펴보자. 한동아리는여러학생이가입할수있으므로같은동아리이름이여러튜플에나타날수있다. 결론적으로동아리이름도튜플들사이에서유일하지않으므로후보키가될자격이없다. 동아리회장 (club_student) 도마찬가지로유일하지않으므로후보키가될수없다. < 그림 1.10> 에는혼자서후보키의역할을할수있는컬럼이없다. 그렇다면학번 (sid) 과동아리이름 (club) 을합친경우는어떠한가. STUDENT_CLUB 테이블이학생들이가입한동아리정보를관리하는것이기때문에 A라는학생이 B라는동아리에가입했다는정보는오직한번만기록되어야한다. 그렇지않다면중복이다. < 그림 1.10> 에서 영어회화반정보는모든튜플을통틀어오직한번만나타나야한다. 만일두번나타난다면 학생이영어회화반에가입했다는정보가두번기록된것이기때문에중복이다. 따라서두컬럼의집합 {sid, club} 은후보키가될수있으며두개이상의컬럼이합쳐져서후보키의역할을하므로복합키이다. 복합키의극단적인경우는테이블의모든컬럼을합쳐야후보키의역할을하는경우이다. < 그림 1.11> 모든컬럼들로구성된기본키 < 그림 1.11> 의테이블은매일어떤모델의제품을누구에게얼마나판매했는지의정보를포함하고있다. 이테이블에서는어떤식으로컬럼을조합해도키의역할을할수가없다. 예를들어판매일자 (sdate) 와모델 (model) 을복합키라고가정하고테이블생성시기본키로지정했다고하자. 2005년 5월 6일에 PHONE 200대를하니통신에추가로판매하게되어이정보를입력하려고하면 PHONE 정보가마 30

30 01 관계형데이터베이스의주요개념 CHAPTER 지막튜플에이미존재하기때문에기본키규칙에따라중복입력을할수없다. 그러나테이블의마지막튜플은한미산업에판매한정보이고새로입력하려는정보는하니통신에판매한정보이기때문에의미상중복이아니다. 그러므로두컬럼의집합 {sdate, model} 은키가될수없는것이다. 이와같이여러컬럼의조합에대해검토해보면결국모든컬럼을조합해야만키의역할을할수있게된다. 실제 DBMS 제품에있어서기본키와대체키 앞에서기본키는어떤튜플이새로추가되려고할때중복된튜플이이미존재하는지를확인하는데사용이된다고설명하였다. 중복을확인하는방법은추가되려고하는튜플의기본키컬럼의값과추가대상테이블의기본키컬럼의값을비교하는것이다. 만일추가대상테이블의모든튜플들에대해서순차적으로비교를해나간다면역시많은시간을소모하게될것이다. 따라서대부분의 DBMS 제품들에서테이블의기본키컬럼들에대해서는자동으로인덱스 (index) 를생성하여중복성여부를빠르게검사할수있도록지원한다 ( 인덱스에대해서는물리적데이터베이스설계에서다시다루도록한다 ). 그에비해대체키로지정된컬럼에대해서는중복성여부는체크하되자동으로인덱스가만들어지지는않는다. 기본키컬럼에다른컬럼이추가된다면 만일기본키의역할을잘수행하고있는컬럼 ( 들 ) 에다른컬럼을추가하면어떻게될까? 여전히기본키의역할을수행할수있지만다른문제가발생하게된다. < 그림 1.9> 의 STUDENT 테이블을가지고설명해보자. < 그림 1.9> 에서 sid는혼자서키의역할을잘수행할수있다. 그런데 {sid, sname} 을함께기본키로지정하면어떻게될까? 의미상 sid는학번을의미하고학번으로도모든학생을구별할수있으므로여기에학생이름 (sname) 을추가하여도역시학생개개인을구별하는데문제가없다. 그런데이렇게지정하는경우는 < 그림 1.12> 와같은튜플이추가될수있다. 31

31 PART 1 데이터베이스개요 < 그림 1.12> 불필요한컬럼이포함된기본키 그림에서추가하려는튜플은 STUDENT 테이블의첫번째튜플과 sid 값이같지만이름이다르므로 {sid, sname} 을합쳐서기본키로하게되면두튜플은서로다른튜플로간주되므로새로이테이블에추가될것이다. 그러나현실에서는같은학번을갖는학생두명이존재하지는않을것이므로데이터의무결성이침해된것이다. 여기에후보키를정할때고려해야할규칙이있다. 즉, 최소한의컬럼혹은컬럼들의집합으로후보키를구성해야한다는것이다. 후보키는하나의테이블내에서튜플이중복되지않음을보증하는수단이다. 이와는달리테이블간의데이터의일치와무결성을보증해주는수단이외래키 (foreign key) 이다. < 그림 1.13> 은사원과부서의정보를담고있는테이블을보여준다. 사원 (emp) 테이블에서사원이속한부서의이름은알수가없다. 부서의이름을알려면부서번호 (deptid) 를가지고부서 (dept) 테이블에가서부서번호에해당하는부서명 (dname) 을찾아보아야한다. 결국사원테이블은부서에대한여러정보를포함하는대신정보를찾을수있는키를가지고있는셈이다. 이러한관계에있을때 ʻ사원테이블이부서테이블을참조한다ʼ라고말한다. 이를일반화시켜서설명하면테이블 A 가테이블 B의기본키에해당하는컬럼을가지고있을때테이블 A가테이블 B를참조한다고말한다. 그리고테이블 A에있는테이블 B의기본키컬럼을외래키라고부른다. 외래키는참조하는테이블 ( 사원테이블 ) 과참조되는테이블 ( 부서테이블 ) 의연결고리역할을한다. < 그림 1.14> 는이러한관계를보여준다. 32

32 01 관계형데이터베이스의주요개념 CHAPTER < 그림 1.13> 사원과부서정보테이블 < 그림 1.14> 기본키와외래키 이와같이어떤테이블에외래키가설정되어있으면어떤좋은점이있을까? 인사담당자가사원테이블에아래의튜플을삽입하는경우를생각해보자. 만일이튜플이삽입된다면데이터의무결성에문제가생긴다. 왜냐하면 900번부서는존재하지않기때문이다. 그러나사원테이블에외래키가설정되어있다면 DBMS 는튜플이삽입될때부서테이블을찾아가서 900번부서가있는지를확인하게되고없는것을확인하면튜플의삽입을거절함으로써데이터의무결성을유지할수있다. 33

33 PART 1 데이터베이스개요 이번에는 < 그림 1.13> 의부서테이블에서세번째튜플 ( 부서번호 ʻ300ʼ) 이삭제되는경우를생각해보자. 만일튜플이그냥삭제된다면이를참조하는사원테이블의다섯번째튜플 ( 사원번호 ʻ1004ʼ) 에문제가생긴다. 사원번호 ʻ1004ʼ인사원의부서번호가 ʻ300ʼ인데, 이부서의정보가삭제되었기때문에 ʻ300ʼ은더이상존재하지않는오류데이터가되는것이다. 이와같이참조되는쪽테이블의튜플이삭제되거나기본키값이변경되므로해서참조하는쪽테이블에무결성이깨어지게되면이를막기위해 DBMS 는다음과같이몇가지조치를취할수있다. 제한 (restricted) 만일삭제하려는튜플의부서번호값을사원테이블에서가지고있는튜플이있으면삭제연산을거절한다. 연쇄 (cascade) 삭제연산을수행한뒤삭제된부서번호값을갖는사원테이블의튜플도함께삭제한다. 만일또다른테이블이사원테이블을참조하고있다면삭제된사원의사원번호값을가지고있는튜플을삭제한다. 이와같이참조관계를따라가면서연쇄적으로관련된튜플들을삭제한다. 널값으로대체 (nullify) 삭제연산을수행한뒤삭제된부서번호값을갖는사원테이블의튜플에서부서번호를 null값으로바꾸어준다. 이와같이외래키를통해두테이블간의데이터무결성을유지하는것을 ʻ참조무결성제약조건ʼ이라고한다. 외래키는사람이지정하는가, DBMS 가알아서처리해주는가? 사람이라면 < 그림 1.13> 의두테이블을보고참조관계에있음을쉽게알수있다. 그러나 DBMS는사람과같이지능이있는것이아니므로테이블간, 데이터간연관성을알수가없다. 따라서참조무결성제약조건을 DBMS에게알려주려면데이터베이스설계자가명시적으로외래키를지정해주어야한다. 34

34 01 관계형데이터베이스의주요개념 CHAPTER 자기참조 (self reference) < 그림 1.13> 의사원테이블에서홍성길사원의직장상사 (manager) 이름을알려면직장상사의사원번호 ʻ1002ʼ를가지고다시사원테이블의튜플중사원번호가 ʻ1002ʼ인것을찾아야한다. 그결과 ʻ곽희준ʼ이 ʻ홍성길ʼ의상사인것을알수있다. < 그림 1.15> 가이러한상황을보여준다. 이와같이한테이블이자신을참조하는경우를 ʻ자기참조ʼ라고한다. < 그림 1.15> 자기참조의예 1.4 뷰 관계형데이터베이스를이해하는데빼놓을수없는것이바로뷰 (view) 이다. 뷰는단어의뜻그대로하나의테이블, 혹은여러테이블에대하여특정사용자나조직의관점에서데이터를바라볼수있도록해주는수단으로서가상테이블이라고도부른다. 어떤회사의사원정보를생각해보자. 회사내에서업무를위해사원정보를필요로하는부서가많이있을것이다. 인사팀에서는급여지급을위해 { 사번, 이름, 입사일자, 급여액 } 이필요하고기획실에서는인력배치를위해 { 사번, 이름, 근무부서, 담당업무 } 를필요로한다. 사내복지팀에서는사원의생일에선물을보내기위해 { 사번, 이름, 생년월일, 주소 } 를필요로한다. 같은사원에대한정보이지만이렇게부서별로필요로하는세부항목은다를수있다. 과거의파일시스템환경에서는이런경우세개의부서에서필요한사원파일을각각생성하여사용하였다. 그결과데이터의중복성, 불일치와같은문제가발생하였다. 관계형데이터베이스에서는데이터를개인이나개별부서단위의관점에서보는것이아니라조직전체의차원에서보기때문에세개의사원정보를관리하지않고하나의사원정보테이블에모아서관리한다. < 그림 1.16> 은통합된사원정보테이블을보여준다. 35

35 PART 1 데이터베이스개요 < 그림 1.16> 전체조직관점에서의사원테이블 이와같은사원테이블이인사팀, 기획실, 사내복지팀에주어진다면각부서에서는자신들에게불필요한정보가포함되어주어지기때문에불편할수도있고, 또한다른부서에보여서는안되는급여정보가함께제공되는문제가생길수있다. 이를위해데이터베이스관리자는 EMP 테이블을제공하는대신에 < 그림 1.17> 과같이각부서의필요에맞는뷰를생성하여제공할수있다. < 그림 1.17> 사원테이블에대한세가지뷰 36

36 01 관계형데이터베이스의주요개념 CHAPTER 사용자의관점에서보면뷰는일반테이블 (base table) 과거의구분이되지않는다. 일반테이블과마찬가지로뷰에대해서도질의가가능하기때문이다. 일반테이블과뷰의중요한차이점은일반테이블이실제로물리적인데이터를갖고있는반면에뷰는물리적인데이터를갖고있지않고, 뷰가정의된일반테이블로부터데이터를가져다보여준다는것이다. 따라서뷰는일반테이블이있어야정의가가능하다. 뷰의정의는다음과같은 SQL 명령을사용한다. CREATE VIEW view_emp1 AS SELECT empid, ename, hire_date, salary FROM emp; CREATE VIEW high_salary AS SELECT empid, ename, dept, salary FROM emp WHERE salary >= 350; 만일사용자가뷰 high_salary 에대하여다음과같은질의를한다면 SELECT empid, ename, salary FROM high_salary WHERE dept = 영업부 ; DBMS 는다음과같이일반테이블에대한질의로바꾸어실행한다. SELECT empid, ename, salary FROM emp WHERE salary >= 350 AND dept = 영업부 ; 일반적으로뷰는다음과같은목적으로사용한다. < 그림 1.17> 의경우와같이하나의테이블에대하여여러부서에서서로다른관점으로보기를원할때 테이블에급여와같이일반사용자에게는감추어야할컬럼이있을때그것을제외하고뷰를만들어제공함으로써보안을유지할필요가있을때 자주사용하는복잡한질의문을미리뷰로정의하여두고간편하게쓰고자할때 37

37 PART 1 데이터베이스개요 뷰에대해서도튜플의삽입과삭제가가능한가? 뷰에대해서는일반테이블에적용되는모든 SELECT문이적용된다. INSERT, UPDATE, DELETE문의실행여부는경우에따라다르게처리된다. 즉, 어떤경우는튜플의삽입, 삭제가가능한경우도있고그렇지않은경우도있다. 상식적으로생각했을때튜플의삽입이나삭제가테이블에문제를일으키지않고, 무결성규칙을만족한다면실행될것이고문제가된다면 DBMS는실행을시키지않을것이다. < 그림 1.17> 의뷰 view_emp2 에튜플을삽입하는상황을생각해보자. view_emp2에대한 INSET 연산은일반테이블 emp에대하여실행될것이고 < 그림 1.18> 과같이 view_emp2에포함되지않은나머지컬럼들에대해서는 null값이적용된다. < 그림 1.18> 뷰에대한튜플의삽입 < 그림 1.18> 에서튜플의삽입가능여부는 null값이저장될컬럼들 (hire_date, birthday, salary) 이 null값을허용하는가에달려있다. 만일이들중어느하나라도 null값을허용하지않는컬럼으로정의되어있다면튜플은삽입되지못할것이다. 세컬럼이모두 null 값을허용한다면 view_emp2를통한튜플의삽입은허용될수있다. 튜플의삭제에대해서도비슷한판단기준이적용된다. 일반적으로여러테이블을조인 (join) 하여뷰를만들거나원래테이블에있던값을 SUM, AVG 등의함수를사용하여가공한뒤뷰를만든경우는뷰에대하여삽입과삭제가불가능하다. 38

38 01 관계형데이터베이스의주요개념 CHAPTER 1.5 SQL 언어 관계형데이터베이스의장점중하나는사용자들이쉽게사용할수있는 SQL(Structured Query Language) 언어를제공한다는것이다. 사용자는간단한 SQL문을사용하여 DBMS 에게작업을요청할수있다. 또한기본적인 SQL문들은표준화되어있기때문에거의대부분의 DBMS 제품에동일하게적용이된다. SQL은 1974년 IBM연구소에서 System R 프로젝트를통해개발되었고 1986년미국표준기구 ANSI 에서 SQL 표준을제정하였다. 현재 SQL-89, SQL2(SQL-92), SQL3(SQL-99) 등여러버전이존재한다. SQL 언어는비절차적언어 (non-procedural language) 이다. 사용자는자신이원하는것만을명시하며, 원하는것을 DBMS 가어떻게처리할지는명시할필요가없다. 또한 SQL 언어는자연어와비슷한문법체계를가지고있기때문에처음보는사람도 SQL문의의미를이해하는것이어렵지않다. 이러한요인으로해서사용자들은 SQL 이다른언어에비해배우기쉬운것으로느낀다. 사용자 / 개발자는 < 그림 1.19> 와같이두가지방식으로 SQL을이용할수있다. < 그림 1.19> SQL 을이용하는두가지방법 대화식 SQL이란 DBMS 회사에서제공하는유틸리티프로그램 ( 예 : ORACLE 의 SQL* Plus) 을이용하여사용자가직접 SQL문을입력하고실행결과를확인하는방식을말한다. 그에비해내장 SQL은 SQL문이 C, Java와같은삭제프로그램안에포함되어져서사용되는방식이다. < 그림 1.20> 은대화식 SQL의예를, < 그림 1.21> 은내장 SQL의예를보여준다. 39

39 PART 1 데이터베이스개요 < 그림 1.20> 대화식 SQL 을지원하는유틸리티의예 <HTML> <HEAD> <TITLE> Dept </TITLE> </HEAD> <BODY> <center><h2> 부서정보조회 ( 전체 )</h2> <% String deptid, dname, dloc ; Class.forName("org.gjt.mm.mysql.Driver"); con = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD); String query = "SELECT * FROM dept"; PreparedStatement pstmt = con.preparestatement(query); ResultSet result = pstmt.executequery(); %> <tr> while (result.next()){ deptid = result.getstring(1); dname = result.getstring(2); dloc = result.getstring("loc"); 40

40 01 관계형데이터베이스의주요개념 CHAPTER <td><%=deptid%></td><td><%=dname%></td><td> <%=dloc%></td> </tr> <% pstmt.close(); %> </table> </BODY> </HTML> < 그림 1.21> JSP 에포함된내장 SQL 의예 데이터베이스를설계하기위해서는 SQL 언어에익숙할필요가있다. 데이터베이스설계의목표중하나는개발자나사용자들의 SQL 질의를효과적으로처리해줄수있는구조로데이터베이스를구성하는것이다. 설계자는사용자들이어떤 SQL을사용하게될지를사전에파악하고그에맞추어데이터베이스를설계해야한다. SQL 언어에는다음과같은명령어가있다. SELECT INSERT UPDATE DELETE CREATE DROP SQL 언어의문법에대해서는자세히설명한책들이많으므로여기서는각명령어에대하여여러형태의 SQL문을살펴보는것으로설명을대신한다. 각 SQL문은 < 그림 1.13> 의사원 (emp) 과부서 (dept) 테이블상에서실행됨을가정한다. DBMS는 SQL문을실행할때대소문자를구분하지않는다. 테이블이름, 컬럼의이름에대해서도마찬가지이다. 다음의예에서는편의상 SQL 문법에있는예약어 (reserved word) 에대해서는대문자로, 테이블이나컬럼이름은소문자로기술하기로한다. 또한대화식 SQL에서많은경우 SQL문이끝났음을알려주기위해 ʻ ; ʼ를사용하므로예제에서도 SQL문끝에 ʻ ; ʼ를붙였다. SQL문은한줄에이어서기술해도되고여러줄에나누어기술해도된다. 41

41 PART 1 데이터베이스개요 SELECT SELECT 는테이블에저장된정보를조회하는데사용한다. 데이터베이스의목적이정보를한곳에모아관리하면서다수가공유하는것임을생각할때 SQL 명령어중에서가장빈번히사용되는명령어가 SELECT 임을쉽게짐작할수있다. 따라서 SELECT 는다양한형태의문법을갖는다. 사원에대한모든정보를보이시오. SELECT * FROM emp ; 곽희준사원의담당업무는무엇인가? SELECT job FROM emp WHERE ename = ' 곽희준 ' ; 급여가 300 을넘고담당업무가영업관리인사원의모든정보를보이시오. SELECT * FROM emp WHERE salary > 300 AND job = ' 영업관리 ' ; 모든사원의이름과급여를보이되사원이름을가나다순으로보이시오. SELECT ename, salary FROM emp ORDER BY ename ; 부서번호와그부서에속한사원들의급여액합계를보이시오. SELECT deptid, SUM(salary) FROM emp GROUP BY deptid ; 42

42 01 관계형데이터베이스의주요개념 CHAPTER 가장많은급여를받는사원의급여액과가장적은급여를받는사원의급여액을보이시오. SELECT MAX(salary), MIN(salary) FROM emp ; 가장많은급여를받는사원의이름을보이시오. SELECT ename FROM emp WHERE salary = ( SELECT MAX(salary) FROM emp ) ; 사원들의현재급여와급여를 10% 인상했을때의예상급여를보이시오. SELECT ename, salary, salary*1.1 FROM emp ; 모든사원들의이름과부서이름을보이시오. SELECT emp.ename, dept.name FROM emp, dept WHERE emp.deptid = dept.deptid ; 또는 SELECT e.ename, d.name FROM emp e, dept d WHERE e.deptid = d.deptid ; 곽희준사원이속한부서의예산은얼마인가? SELECT d.dname, d.budget FROM emp e, dept d WHERE e.deptid = d.deptid AND e.ename = ' 곽희준 '; 43

43 PART 1 데이터베이스개요 사원의이름과그사원의상사 (manager) 이름을보이시오. SELECT e.ename, m.ename FROM emp e, emp m WHERE e.manager = m.empid; INSERT INSERT 는테이블에튜플을삽입할때사용한다. 기본적으로 INSERT 문은한번에하나의튜플을삽입할수있다. INSERT INTO emp (empid, ename, deptid, hire_date, job, salary) VALUES (106, 강윤호, 200, , 연말정산, 400); ( 사원정보에튜플을삽입. 위와같이모든컬럼의값에대해테이블에있는컬럼순서대로저장하는경우는다음과같이간단히기술할수있다.) INSERT INTO emp VALUES (106, 강윤호, 200, , 연말정산, 400); INSERT INTO emp (empid, ename, salary) VALUES (107, 남진선, 500); ( 위와같이일부컬럼을생략하고튜플을삽입하는경우, 생략된컬럼들의값은 null 로저장된다.) UPDATE UPDATE 는테이블에저장되어있는튜플의값을변경할때사용한다. 홍성길사원의부서번호를 400 으로, 급여를 500 으로변경하시오. UPDATE emp SET deptid=400, salary=500 WHERE ename=' 홍성길 ; 44

44 01 관계형데이터베이스의주요개념 CHAPTER 영업부에속한사원의급여를 20% 인상하시오. UPDATE emp SET salary = salary*1.2 WHERE deptid = (SELECT deptid FROM dept WHERE dname = ' 영업부 ') ; DELETE DELETE 는테이블에있는튜플을삭제할때사용한다. 홍성길사원의정보를사원정보에서삭제하시오. DELETE FROM emp WHERE ename=' 홍성길 ; 모든사원의정보를사원정보에서삭제하시오. DELETE FROM emp ; CREATE CREATE 는테이블, 뷰, 사용자등데이터베이스내의객체들을생성하는데사용된다. 앞에서살펴본 SELECT, INSERT, UPDATE, DELETE가테이블내에있는튜플들에대한명령어이고일반사용자들이이용할수있는명령어이나 CREATE 는데이터베이스의구조와관련이있기때문에데이터베이스관리자나설계자들이사용하게된다. 또한 CREATE 문은표준화된문법을가지고있지만 DBMS 제품마다상이한부분이있으므로사용할제품에서어떤문법을제공하는지살펴보아야한다. 45

45 PART 1 데이터베이스개요 다음은 dept, emp 테이블을생성하는문장이다. CREATE TABLE emp ( deptid int(10) NOT NULL, dname char(20), budget char(5), PRIMARY KEY(deptid) ); CREATE TABLE emp ( empid int(10) NOT NULL, ename char(20), deptid int(5), hire_date date, job char(20), salary int(10) NOT NULL, PRIMARY KEY(empid), FOREIGN KEY (deptid) REFERENCES dept(deptid) ); 다음은 dept, emp 테이블을연결하여뷰를만드는문장이다. CREATE VIEW new_emp AS SELECT e.empid, e.ename, d.dname, e.salary FROM emp e, dept d WHERE e.deptid = d.deptid ; DROP DROP 은 CREATE 의반대역할을하는명령어로데이터베이스내의객체를제거하는역할을한다. 다음은 dept 테이블과뷰 new_emp 를제거하는문장이다. DROP TABLE dept ; DROP VIEW new_emp ; 46

46 01 관계형데이터베이스의주요개념 CHAPTER Database 연습문제 E X E R C I S E 01 동일데이터가중복하여존재할때발생할수있는문제가무엇인지설명하시오. 02 데이터베이스 (database) 와 DBMS 의차이점을설명하시오. 03 릴레이션, 컬럼, 튜플에대해간단히설명하시오. 04 다음테이블에서기본키와외래키는무엇인지찾아보시오. 05 뷰 (view) 의필요성에대해설명하시오. 06 mysql DBMS 를이용하여 < 그림 1.13> 의사원과부서정보테이블을생성하시오. (44페이지의 CREATE문참조 ) 07 사원과부서정보테이블에 < 그림 1.13> 과동일한튜플을입력하시오. 앞에서생성한사원과부서정보테이블에대해다음명령에해당하는 SQL을작성하여실행하시오. 08 담당업무 (job) 가 ʻ 영업관리 ʼ 인사원의모든정보를보이시오. 09 급여 (salary) 가 400 이상인사원의이름과그사원이속한부서이름을보이시오. 47

47 PART 1 데이터베이스개요 10 ʻ 영업부 ʼ 와 ʻ 구매부 ʼ 사원들의급여 (salary) 합계를보이시오. 11 가장급여를많이받는사원과가장적게받는사원의급여액차이는얼마인지보이시오. 12 ʻ 영업 ʼ 사원중급여가 380 이상인사원의이름, 담당업무 (job), 급여액을보이시오. 13 ʻ 성재규 ʼ 사원의소속부서이름을보이시오. 14 ʻ구매부ʼ에속한사원을제외한나머지사원들에대해 ʻ사원번호ʼ, ʻ이름ʼ, ʻ부서명ʼ, ʻ담당업무ʼ, ʻ급여ʼ를조회할수있는뷰 (view) 를생성하시오. 그리고그뷰를조회한결과를보이시오. 48

48 저자약력 오세종 89 : 서강대학교컴퓨터학과졸업 ( 공학사 ) 91 : 서강대학교대학원컴퓨터학과졸업 ( 공학석사 ) 01 : 서강대학교대학원컴퓨터학과졸업 ( 공학박사 ) : 대우정보시스템 ( 주 ) 근무 : George Mason University ( 美 ) Lab. for Information Security Technology (LIST) Post Doc. Researcher 03 현재 : 단국대학교공학대학컴퓨터과학전공, 대학원나노바이오의과학과부교수 05 현재 : 정보보호학회논문지편집위원 저자와의협의에의해인지를생략합니다. DB 설계입문자를위한 데이터베이스설계및구축 개정판 오세종지음 초판발행 : 개정 2 판 : 발 행 인 : 김승기 발 행 처 : 생능출판사 신고 번호 : 제 호 신고 일자 : I S B N : 경기도파주시문발동 파주출판도시대표전화 : FAX : 생능 URL : 파본및잘못된책은바꾸어드립니다. 값 : 20,000 원

슬라이드 제목 없음

슬라이드 제목 없음 뷰와시스템카탈로그 관계데이터베이스시스템의뷰 (view) 는다른릴레이션으로부터유도된릴레이션 (derived relation) 으로서 ANSI/SPARC 3단계아키텍처의외부뷰와다름 뷰는관계데이터베이스시스템에서데이터베이스의보안메카니즘으로서, 복잡한질의를간단하게표현하는수단으로서, 데이터독립성을높이기위해서사용됨 시스템카탈로그는시스템내의객체 ( 기본릴레이션, 뷰, 인덱스,

More information

DBMS & SQL Server Installation Database Laboratory

DBMS & SQL Server Installation Database Laboratory DBMS & 조교 _ 최윤영 } 데이터베이스연구실 (1314 호 ) } 문의사항은 cyy@hallym.ac.kr } 과제제출은 dbcyy1@gmail.com } 수업공지사항및자료는모두홈페이지에서확인 } dblab.hallym.ac.kr } 홈페이지 ID: 학번 } 홈페이지 PW:s123 2 차례 } } 설치전점검사항 } 설치단계별설명 3 Hallym Univ.

More information

슬라이드 제목 없음

슬라이드 제목 없음 4.2 SQL 개요 SQL 개요 SQL은현재 DBMS 시장에서관계 DBMS가압도적인우위를차지하는데중요한요인의하나 SQL은 IBM 연구소에서 1974년에 System R이라는관계 DBMS 시제품을연구할때관계대수와관계해석을기반으로, 집단함수, 그룹화, 갱신연산등을추가하여개발된언어 1986년에 ANSI( 미국표준기구 ) 에서 SQL 표준을채택함으로써 SQL이널리사용되는데기여

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 데이터베이스및설계 Chap 2. 데이터베이스관리시스템 2013.03.11. 오병우 컴퓨터공학과 Inconsistency of file system File System Each application has its own private files Widely dispersed and difficult to control File 중심자료처리시스템의한계 i. 응용프로그램의논리적파일구조는직접물리적파일구조로구현

More information

Microsoft PowerPoint - 사본 - OAS09-사무자동화 기술(DB).ppt

Microsoft PowerPoint - 사본 - OAS09-사무자동화 기술(DB).ppt 1. 데이터베이스정의 : 특정조직이업무수행하는데필요한관련성있는자료들의집합체 ( 통합, 저장, 운영, 공용 ) 2. 데이터베이스시스템도입배경 : 파일시스템의문제점을해결 응용프로그램 1 ( 인사 ) 응용프로그램 2 ( 급여 ) 응용프로그램 3 ( 자재 ) 응용프로그램 4 ( 마케팅 ) 파일 1 파일 2 파일 3 파일 4 * 독립된파일단위로업무와관련한데이터를저장하므로데이터중복성과데이터종속성발생

More information

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins Project 1-3: Implementing DML Due: 2015/11/11 (Wed), 11:59 PM 이번프로젝트의목표는프로젝트 1-1 및프로젝트 1-2에서구현한프로그램에기능을추가하여간단한 DML을처리할수있도록하는것이다. 구현한프로그램은 3개의 DML 구문 (insert, delete, select) 을처리할수있어야한다. 테이블데이터는파일에저장되어프로그램이종료되어도사라지지않아야한다.

More information

PowerPoint Presentation

PowerPoint Presentation Computer Science Suan Lee - Computer Science - 06 데이터베이스 1 06 데이터베이스 - Computer Science - 06 데이터베이스 2 목차 1. 데이터베이스의개요 2. 데이터모델 3. 관계형데이터베이스 4. SQL 5. 모바일데이터베이스 - Computer Science - 06 데이터베이스 3 데이터베이스의개념

More information

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770>

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770> 제 8강 SQL: 관계데이터베이스언어 강의목표 관계데이타베이스언어로서상용 DBMS에서가장널리사용되는 SQL의동작원리에관하여학습하고, 이를이용하여다양한질의문을작성하는방법을습득한다 기대효과 SQL의데이터정의기능을이해한다 SQL의데이터조작기능중질의기능을이해한다 SQL의데이터조작기능중데이터갱신기능을이해한다 SQL의데이터조작기능중뷰및인덱스관련기능을이해한다 SQL 의개요

More information

<4D F736F F F696E74202D E DB0FCB0E820BBE7BBF3BFA120C0C7C7D120B0FCB0E820B5A5C0CCC5CDBAA3C0CCBDBA20BCB3B0E8>

<4D F736F F F696E74202D E DB0FCB0E820BBE7BBF3BFA120C0C7C7D120B0FCB0E820B5A5C0CCC5CDBAA3C0CCBDBA20BCB3B0E8> 데이터베이스 (Database) ER- 관계사상에의한관계데이터베이스설계 문양세강원대학교 IT특성화대학컴퓨터과학전공 설계과정 [ 그림 3.1] 작은세계 요구사항들의수정과분석 Functional Requirements 데이타베이스요구사항들 FUNCTIONAL ANALYSIS 개념적설계 ERD 사용 High level ltransaction Specification

More information

Microsoft PowerPoint - 27.pptx

Microsoft PowerPoint - 27.pptx 이산수학 () n-항관계 (n-ary Relations) 2011년봄학기 강원대학교컴퓨터과학전공문양세 n-ary Relations (n-항관계 ) An n-ary relation R on sets A 1,,A n, written R:A 1,,A n, is a subset R A 1 A n. (A 1,,A n 에대한 n- 항관계 R 은 A 1 A n 의부분집합이다.)

More information

RDB개요.ppt

RDB개요.ppt 1 2 3 < > 1 SQL SQL 2 SQL 3 column DEPT DEPT# DNAME BUDGET D1 D2 D3 Marketing Development Research 10M 12M 5M tuple EMP EMP# ENAME DEPT# SALARY D1 40 D1 45 E1 E2 E3 Lopez Cheng Finzi D2 30 E4 Satio D2

More information

슬라이드 제목 없음

슬라이드 제목 없음 5.2 ER 모델 ( 계속 ) 관계와관계타입 관계는엔티티들사이에존재하는연관이나연결로서두개이상의엔티티타입들사이의사상으로생각할수있음 관계집합은동질의관계들의집합 관계타입은동질의관계들의틀 관계집합과관계타입을엄격하게구분할필요는없음 요구사항명세에서흔히동사는 ER 다이어그램에서관계로표현됨 ER 다이어그램에서다이어몬드로표기 관계타입이서로연관시키는엔티티타입들을관계타입에실선으로연결함

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 데이터베이스및설계 Chap 1. 데이터베이스환경 (#2/2) 2013.03.04. 오병우 컴퓨터공학과 Database 용어 " 데이타베이스 용어의기원 1963.6 제 1 차 SDC 심포지움 컴퓨터중심의데이타베이스개발과관리 Development and Management of a Computer-centered Data Base 자기테이프장치에저장된데이터파일을의미

More information

Microsoft PowerPoint - QVIZMVUMWURI.pptx

Microsoft PowerPoint - QVIZMVUMWURI.pptx 데이타베이스시스템 2011.03 충북대학교경영정보학과조완섭 (wscho@chungbuk.ac.kr) Chap. 4 SQL 질의어 C4 2 목차 - SQL2에서데이터정의, 제약조건및스키마변경 - SQL에서의기본질의 - 더복잡한 SQL 질의들 - SQL에서삽입, 삭제, 갱신구문 - SQL 뷰 - 주장으로추가적인제약조건명시 - SQL의부가적인기능들 Ch4 3 SQL

More information

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL 다양한예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저 4 장 JOIN 을배웁니다 1 2 1. Cartesian Product ( 카티션곱, CROSS Join) - Oracle Join 문법 SQL> SELECT e.ename, d.dname 2 FROM emp e, dept d ; - ANSI Join 문법 SQL> SELECT e.ename, d.dname

More information

Microsoft PowerPoint - 10Àå.ppt

Microsoft PowerPoint - 10Àå.ppt 10 장. DB 서버구축및운영 DBMS 의개념과용어를익힌다. 간단한 SQL 문법을학습한다. MySQL 서버를설치 / 운영한다. 관련용어 데이터 : 자료 테이블 : 데이터를표형식으로표현 레코드 : 테이블의행 필드또는컬럼 : 테이블의열 필드명 : 각필드의이름 데이터타입 : 각필드에입력할값의형식 학번이름주소연락처 관련용어 DB : 테이블의집합 DBMS : DB 들을관리하는소프트웨어

More information

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

@OneToOne(cascade = = addr_id) private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a 1 대 1 단방향, 주테이블에외래키실습 http://ojcedu.com, http://ojc.asia STS -> Spring Stater Project name : onetoone-1 SQL : JPA, MySQL 선택 http://ojc.asia/bbs/board.php?bo_table=lecspring&wr_id=524 ( 마리아 DB 설치는위 URL

More information

10.ppt

10.ppt : SQL. SQL Plus. JDBC. SQL >> SQL create table : CREATE TABLE ( ( ), ( ),.. ) SQL >> SQL create table : id username dept birth email id username dept birth email CREATE TABLE member ( id NUMBER NOT NULL

More information

강의 개요

강의 개요 DDL TABLE 을만들자 웹데이터베이스 TABLE 자료가저장되는공간 문자자료의경우 DB 생성시지정한 Character Set 대로저장 Table 생성시 Table 의구조를결정짓는열속성지정 열 (Clumn, Attribute) 은이름과자료형을갖는다. 자료형 : http://dev.mysql.cm/dc/refman/5.1/en/data-types.html TABLE

More information

Object Oriented Analyis & Design Training Agenda

Object Oriented Analyis & Design Training Agenda Chapter 1 Players in the Systems Game 1 C H A P T E R 6 데이터베이스 데이터베이스의정의 한조직내에서관련된자료들을정보생산을목적으로 논리적관계에따라분류하고정리해서전자적매체에 저장해놓은것 데이터베이스의특성 (1) 집합 (2) 목적지향적 (3) 공유 (4) 상호연관성 Chapter 1 Players in the Systems

More information

MySQL-.. 1

MySQL-.. 1 MySQL- 기초 1 Jinseog Kim Dongguk University jinseog.kim@gmail.com 2017-08-25 Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 1 / 18 SQL의 기초 SQL은 아래의 용도로 구성됨 데이터정의 언어(Data definition

More information

03-01 데이터모델링과데이터모델의개념 개체-관계모델 논리적데이터모델

03-01 데이터모델링과데이터모델의개념 개체-관계모델 논리적데이터모델 03-01 데이터모델링과데이터모델의개념 개체-관계모델 논리적데이터모델 학습목표 데이터모델링과데이터모델의개념을이해한다. 개념적데이터모델인개체 - 관계모델을이용해모델링을하는방법을익힌다. 개체 - 관계모델을개체 - 관계다이어그램으로작성하는방법을익힌다. 논리적데이터모델의종류와특징을이해한다. 2 01 데이터모델링과데이터모델의개념 3 01 데이터모델링과데이터모델의개념

More information

PowerPoint Template

PowerPoint Template ` ERwin Data Modeler 사용자교육 ERwin Data Modeler 소개 I. ERwin Data Modeler 목차 1. ERwin 소개 2. ERwin 의모델링용어소개 3. ERwin Model Type 4. Relationship Issue -2-2 II. ERwin Data Modeler (Outline) ERwin Data Modeler

More information

쉽게 풀어쓴 C 프로그래밊

쉽게 풀어쓴 C 프로그래밊 Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.

More information

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Spring Boot/JDBC JdbcTemplate/CRUD 예제 Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.

More information

JDBC 소개및설치 Database Laboratory

JDBC 소개및설치 Database Laboratory JDBC 소개및설치 JDBC } What is the JDBC? } JAVA Database Connectivity 의약어 } 자바프로그램안에서 SQL 을실행하기위해데이터베이스를연결해주는응용프로그램인터페이스 } 연결된데이터베이스의종류와상관없이동일한방법으로자바가데이터베이스내에서발생하는트랜잭션을제어할수있도록하는환경을제공 2 JDBC Driver Manager }

More information

PowerPoint Presentation

PowerPoint Presentation 6 장 SQL (section 4-6) 목차 SECTION 01 SQL 의개요 1-1 SQL의역사 1-2 SQL의유형별종류 SECTION 02 데이터정의어 (DDL) 2-1 스키마 2-2 테이블생성 (CREATE TABLE) 2-3 테이블변경 (ALTER TABLE) 2-4 테이블제거 (DROP TABLE) 2-5 제약조건 SECTION 03 데이터조작어 (DML)

More information

untitled

untitled (shared) (integrated) (stored) (operational) (data) : (DBMS) :, (database) :DBMS File & Database - : - : ( : ) - : - : - :, - DB - - -DBMScatalog meta-data -DBMS -DBMS - -DBMS concurrency control E-R,

More information

lecture01

lecture01 Lecture 01: Database Overview Kwang-Man Ko kkmam@sangji.ac.kr, compiler.sangji.ac.kr Department of Computer Engineering Sang Ji University 2018 강의정보 l 교과목명 : 데이터베이스 l 선수과목 : 자료구조, 화일구조 l 강의시간 : 금 3,4,5교시

More information

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역 WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역시쉽게해결할수있다. 이번화이트페이퍼에서는 Window Function 중순위 RANK, ROW_NUMBER,

More information

6장. SQL

6장. SQL 학습목표 SQL이 무엇인지 개념을 설명 테이블을 생성, 변경, 제거할 할 수 있다. 수 있다. 데이터를 검색, 갱신, 삽입, 삭 제할 수 있다. 뷰, 시스템 카탈로그, 저장 프 로시저, 트리거에 대한 개념 을 설명할 수 있다. 2 목차 SECTION 01 SQL의 개요 11 SQL의 역사 12 SQL의 유형별 종류 SECTION 0 21 스키마 22 테이블

More information

Microsoft PowerPoint Python-DB

Microsoft PowerPoint Python-DB 순천향대학교컴퓨터공학과이상정 순천향대학교컴퓨터공학과 1 학습내용 데이터베이스 SQLite 데이터베이스 파이썬과데이터베이스연결 순천향대학교컴퓨터공학과 2 데이터베이스 (Database) 소개 데이터베이스 DBMS (DataBase Management System) 이라고도함 대용량의데이터를매우효율적으로처리하고저장하는기술 SQLite, 오라클, MySQL 등이있음

More information

VENUS Express 사용자 매뉴얼

VENUS Express 사용자 매뉴얼 1 장데이터베이스 2 장데이터모델링 < 연습문제답 > 1 번답 : 관련된데이터들의모임을데이터베이스라고한다. 2 번답 : 물리스키마를변경하지않고개념스키마의변경이가능함을물리적데이터독립 성이라한다. 3 번답 : 위쪽부터차례로 conceptual design, logical design, physical design 4 번답 : 가. DDL 5 번답 : 가. 개념스키마

More information

SQL

SQL 데이터베이스및 SQL 언어의기초 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 1 / 36 Part I 데이터베이스 박창이 ( 서울시립대학교통계학과 ) 데이터베이스및 SQL 언어의기초 2 / 36 데이터의구성및표현 개체 (entity): DB가표현하려는유형 / 무형적정보의대상속성 (attribute): 개체가갖는특성도메인

More information

Microsoft PowerPoint - ch07_데이터베이스 언어 SQL.pptx

Microsoft PowerPoint - ch07_데이터베이스 언어 SQL.pptx 05-01 SQL의소개 SQL을이용한데이터정의 SQL을이용한데이터조작 뷰 삽입 SQL 학습목표 SQL의역할을이해하고, 이를기능별로분류해본다. SQL의데이터정의기능을예제를통해익힌다. SQL의데이터조작기능을예제를통해익힌다. 뷰의개념과장점을이해한다. 삽입 SQL의역할을이해한다. 2 01 SQL 의소개 SQL (Structured Query Language) 의미

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

Microsoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드]

Microsoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드] MS SQL Server 마이크로소프트사가윈도우운영체제를기반으로개발한관계 DBMS 모바일장치에서엔터프라이즈데이터시스템에이르는다양한플랫폼에서운영되는통합데이터관리및분석솔루션 2 MS SQL Server 개요 3.1 MS SQL Server 개요 클라이언트-서버모델을기반으로하는관계 DBMS로서윈도우계열의운영체제에서만동작함 오라클관계 DBMS보다가격이매우저렴한편이고,

More information

강의 개요

강의 개요 정규화와 SELECT (II) 웹데이터베이스 학과 학생 과목 학과 지도교수 학과학번성명 수강과목 담당교수 A 김수정 A 0001 고길동 성질이론 김수정 B 허영만 A 0002 둘리 한식의멋 허영만 C 강풀 B 0003 희동이 심리학의이해 강풀 과목 _ 성적 학번 수강과목 성적 0001 성질이론 A 0001 한식의멋 C 0002 성질이론 A 0002 한식의멋

More information

<4D F736F F F696E74202D20BFC0B6F3C5AC2D38C0E52DBAE4BFCD20BDC3BDBAC5DB20C4ABC5BBB7CEB1D72DBFC0B6F3C5AC2E BC8A3C8AF20B8F0B

<4D F736F F F696E74202D20BFC0B6F3C5AC2D38C0E52DBAE4BFCD20BDC3BDBAC5DB20C4ABC5BBB7CEB1D72DBFC0B6F3C5AC2E BC8A3C8AF20B8F0B 8 제장오라클 81 8.1 뷰 8.2 관계 DBMS의시스템카탈로그 8.3 오라클의시스템카탈로그연습문제 뷰와시스템카탈로그 관계데이터베이스시스템의뷰 (view) 는다른릴레이션으로부터유도된릴레이션 (derived relation) 으로서 ANSI/SPARC 3단계아키텍처의외부 뷰와다름 뷰는관계데이터베이스시스템에서데이터베이스의보안메카니즘으로서, 복잡한질의를간단하게표현하는수단으로서,

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

02-01 데이터베이스의필요성 데이터베이스의정의와특성

02-01 데이터베이스의필요성 데이터베이스의정의와특성 02-01 데이터베이스의필요성 데이터베이스의정의와특성 학습목표 데이터와정보의차이를이해한다. 데이터베이스의필요성을알아본다. 데이터베이스의정의에숨겨진의미와주요특성을이해한다. 2 01 데이터베이스의필요성 데이터와정보 데이터 (data) 현실세계에서단순히관찰하거나측정해수집한사실이나값 정보 (information) 의사결정에유용하게활용할수있도록데이터를처리한결과물 정보또한다시데이터로간주될수있다.

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 데이터베이스및설계 Chap 4. 관계데이터베이스 (#2/2) 2013.03.20. 오병우 컴퓨터공학과 Integrity rule Introduction To inform the DBMS of certain constraints in the real world, so that it can prevent impossible configuration of values

More information

Microsoft PowerPoint - 사본 - DB06-SQL,시스템카탈로그,뷰.ppt

Microsoft PowerPoint - 사본 - DB06-SQL,시스템카탈로그,뷰.ppt . SQL(Structured Query Language) 특징 [ 출제빈도 상 ] 사용자 SQL ) 관계대수와관계해석을기초로한고급데이터언어 ) 이해하기쉬운형태 3) 대화식질의어로사용가능 4) 데이터정의, 조작, 제어기능제공 5) COBOL, C, PASCAL 등의언어에삽입 -> 내장 SQL 6) 레코드집합단위로처리 7) DBMS 에서사용되는비절차적대화형 Language

More information

문서 템플릿

문서 템플릿 HDSI 툴분석 [sql injection 기술명세서 ] Sql injection 기술명세서 Ver. 0.01 이문서는 sql injection 기술명세가범위입니다. Copyrights Copyright 2009 by CanvasTeam@SpeeDroot( 장경칩 ) All Rights Reserved. 장경칩의사전승인없이본내용의전부또는일부에대한복사, 전재,

More information

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

< D53514C2CBAE42CBDC3BDBAC5DBC4ABC5BBB7CEB1D72D3130B3E2B0A3B1E2C3E2BAD0B7F9C1FD28C5EBC7D5292E687770>

< D53514C2CBAE42CBDC3BDBAC5DBC4ABC5BBB7CEB1D72D3130B3E2B0A3B1E2C3E2BAD0B7F9C1FD28C5EBC7D5292E687770> (1) SQL ********************************************************* [ 기-07년5 월] 1. 다음의관계대수문장을 SQL로표현한것으로옳은것 π name, dept( σ year =3 (student)) 가. SELECT name, dept FROM student HAVING year=3; 나. SELECT name,

More information

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자 SQL Developer Connect to TimesTen 유니원아이앤씨 DB 팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 2010-07-28 작성자 김학준 최종수정일 2010-07-28 문서번호 20100728_01_khj 재개정이력 일자내용수정인버전

More information

Tablespace On-Offline 테이블스페이스 온라인/오프라인

Tablespace On-Offline 테이블스페이스 온라인/오프라인 2018/11/10 12:06 1/2 Tablespace On-Offline 테이블스페이스온라인 / 오프라인 목차 Tablespace On-Offline 테이블스페이스온라인 / 오프라인... 1 일반테이블스페이스 (TABLESPACE)... 1 일반테이블스페이스생성하기... 1 테이블스페이스조회하기... 1 테이블스페이스에데이터파일 (DATA FILE) 추가

More information

5장 SQL 언어 Part II

5장 SQL 언어 Part II 5 장 SQL 언어 Part II 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 1 / 26 데이터조작문 데이터검색 : SELECT 문데이터추가 : INSERT 문데이터수정 : UPDATE 문데이터삭제 : DELETE 문 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 2 / 26 SELECT

More information

<C1A4BAB8C3B3B8AE5FBBEABEF7B1E2BBE75FC7CAB1E25F E687770>

<C1A4BAB8C3B3B8AE5FBBEABEF7B1E2BBE75FC7CAB1E25F E687770> 3.2 관계데이터언어 0709 (1) 관계대수 0703 0705 0703 1) 관계대수정의 1 원하는정보와그정보를어떻게유도하는가를기술하는절차적인방법 0503 2 주어진관계로부터원하는관계를얻기위해연산자와연산규칙을제공하는언어 0503 3 릴레이션조작을위한연산의집합으로피연산자와결과가모두릴레이션이라는특성을가짐 2) 순수관계연산자 0305 관계데이터베이스에적용할수있도록특별히개발된관계연산자

More information

Microsoft PowerPoint SQL 추가 기능

Microsoft PowerPoint SQL 추가 기능 데이터베이스 (Database) : 주장, 뷰, 프로그래밍기법 문양세강원대학교 IT특성화대학컴퓨터과학전공 강의내용 주장 (Assertions) 으로일반적인제약조건명시 SQL 에서뷰 ( 가상테이블 ) 데이터베이스프로그래밍 내포된 SQL (Embedded SQL) 함수호출, SQL/CLI [ 생략 ] 저장프로시저와 SQL/PSM [ 생략 ] 요약 Page 2 주장

More information

슬라이드 제목 없음

슬라이드 제목 없음 MS SQL Server 마이크로소프트사가윈도우운영체제를기반으로개발한관계 DBMS 모바일장치에서엔터프라이즈데이터시스템에이르는다양한플랫폼에서운영되는통합데이터관리및분석솔루션 2 MS SQL Server 개요 3.1 MS SQL Server 개요 클라이언트-서버모델을기반으로하는관계 DBMS 로서윈도우계열의운영체제에서만동작함 오라클관계 DBMS 보다가격이매우저렴한편이고,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 MySQL - 명령어 1. 데이터베이스관련명령 2. 데이터베이스테이블관련명령 3. SQL 명령의일괄실행 4. 레코드관련명령 5. 데이터베이스백업및복원명령 1. 데이터베이스관련명령 데이터베이스접속명령 데이터베이스접속명령 mysql -u계정 -p비밀번호데이터베이스명 C: > mysql -ukdhong p1234 kdhong_db 데이터베이스생성명령 데이터베이스생성명령

More information

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터 Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터를사용자에게전송하게되며 Parsing 단계에서실행계획이생성된다. Bind 변수를사용하는 SQL

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information

완벽한개념정립 _ 행렬의참, 거짓 수학전문가 NAMU 선생 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에

완벽한개념정립 _ 행렬의참, 거짓 수학전문가 NAMU 선생 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에대하여 AB=BA 1 가성립한다 2 3 (4) 이면 1 곱셈공식및변형공식성립 ± ± ( 복호동순 ), 2 지수법칙성립 (은자연수 ) < 거짓인명제 >

More information

단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL 결과에대해서 Oracle, SQL Server 순서로적으시오 TAB1 COL1 CHAR(10) COL2 CHAR(10) INSERT INTO TAB1 VALUES ('1',''); INSERT INT

단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL 결과에대해서 Oracle, SQL Server 순서로적으시오 TAB1 COL1 CHAR(10) COL2 CHAR(10) INSERT INTO TAB1 VALUES ('1',''); INSERT INT Study Room Doc.03 : SQLD 예상문제 ( 단답형 ) 네이버 Cafe : 데이터베이스전문가포럼 Study Room http://cafe.naver.com/sqlpd SQLD 26,25,24,21 회기출문제를바탕으로작성 작성자 : 월야루 도움 : 빙수민외카페댓글 2017-11-30 단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이타베이스 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2013.05.15. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

The Relational Model

The Relational Model The Relational Database 1 관계데이터모델 릴레이션의개념 릴레이션의특성 데이터베이스키 Relational Query Languages SQL 데이터정의문 DB Lab. CUK 1 관계 (Relational) 데이터모델 (1/2) Relational database 란? a set of relations Relation: made up of

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 데이터베이스및설계 Chap 4. 관계데이터베이스 (#1/2) 2013.03.20. 오병우 컴퓨터공학과 관계데이터모델 관계데이터모델 (relational data model) 의탄생 1970 년대 IBM 의 E. F. Codd 에의해제안 Data structure Data manipulation (operation) Data integrity (constrains)

More information

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 ) 8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 ) - DDL(Data Definition Language) : show, create, drop

More information

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL 다양한예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저 9 장인덱스를배웁니다 1 1. 인덱스란무엇인가? 2 - ROWID ( 주소 ) 조회하기 SCOTT>SELECT ROWID, empno, ename 2 FROM emp 3 WHERE empno=7902 ; ROWID EMPNO ENAME --------------------------------- ----------

More information

<3235B0AD20BCF6BFADC0C720B1D8C7D120C2FC20B0C5C1FE20322E687770>

<3235B0AD20BCF6BFADC0C720B1D8C7D120C2FC20B0C5C1FE20322E687770> 25 강. 수열의극한참거짓 2 두수열 { }, {b n } 의극한에대한 < 보기 > 의설명중옳은것을모두고르면? Ⅰ. < b n 이고 lim = 이면 lim b n =이다. Ⅱ. 두수열 { }, {b n } 이수렴할때 < b n 이면 lim < lim b n 이다. Ⅲ. lim b n =0이면 lim =0또는 lim b n =0이다. Ⅰ 2Ⅱ 3Ⅲ 4Ⅰ,Ⅱ 5Ⅰ,Ⅲ

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습문제 Chapter 05 데이터베이스시스템... 오라클로배우는데이터베이스개론과실습 1. 실습문제 1 (5 장심화문제 : 각 3 점 ) 6. [ 마당서점데이터베이스 ] 다음프로그램을 PL/SQL 저장프로시져로작성하고실행해 보시오. (1) ~ (2) 7. [ 마당서점데이터베이스 ] 다음프로그램을 PL/SQL 저장프로시져로작성하고실행해 보시오. (1) ~ (5)

More information

Spring Data JPA Many To Many 양방향 관계 예제

Spring Data JPA Many To Many 양방향 관계 예제 Spring Data JPA Many To Many 양방향관계예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) 엔티티매핑 (Entity Mapping) M : N 연관관계 사원 (Sawon), 취미 (Hobby) 는다 : 다관계이다. 사원은여러취미를가질수있고, 하나의취미역시여러사원에할당될수있기때문이다. 보통관계형 DB 에서는다 : 다관계는 1

More information

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL 다양한예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저 3 장 SQL 복수행함수 ( 그룹함수 ) 를배웁니다 1 함수이름 의 미 사용예 COUNT 입력되는데이터들의건수를출력 COUNT(sal) SUM 입력되는데이터들의합계값을출력 SUM(sal) AVG 입력되는데이터들의평균값을출력 AVG(sal) MAX 입력되는데이터들중최고값을출력 MAX(sal) MIN

More information

<4D F736F F F696E74202D E20B0FCB0E820B5A5C0CCC5CD20B8F0B5A8B0FA20B0FCB0E820B5A5C0CCC5CDBAA3C0CCBDBA20C1A6BEE020C1B6B0C7>

<4D F736F F F696E74202D E20B0FCB0E820B5A5C0CCC5CD20B8F0B5A8B0FA20B0FCB0E820B5A5C0CCC5CDBAA3C0CCBDBA20C1A6BEE020C1B6B0C7> 데이터베이스 (Database) 과관계데이터베이스제약조건 문양세강원대학교 IT특성화대학컴퓨터과학전공 강의내용. 관계모델의개념 관계모델제약조건과관계형데이터베이스스키마 갱신연산과제약조건의위반처리 Page 2 & 관계데이터베이스 1970 년 IBM 연구소의 Ted Codd 가처음으로소개 대표적관계 DMBS IBM의 DB2 Informix 의 Dynamic Server

More information

Windows 10 General Announcement v1.0-KO

Windows 10 General Announcement v1.0-KO Windows 10 Fuji Xerox 장비와의호환성 v1.0 7 July, 2015 머리말 Microsoft 는 Windows 10 이 Windows 자동업데이트기능을통해예약되어질수있다고 6 월 1 일발표했다. 고객들은 윈도우 10 공지알림을받기 를표시하는새로운아이콘을알아차릴수있습니다. Fuji Xerox 는 Microsoft 에서가장최신운영시스템인 Windows

More information

Microsoft PowerPoint - 5 [호환 모드]

Microsoft PowerPoint - 5 [호환 모드] Chapter 5 SQL: 확장된질의, 주장, 트리거, 뷰 Copyright 2004 Pearson Education, Inc. 목차 5.1 더복잡한 SQL 검색질의 5.2 주장으로제약조건및트리거로동작 5.3 SQL에서뷰 ( 가상테이블 ) 5.4 SQL에서스키마변경문 Slide 5-1 5.1 더복잡한 SQL 검색질의 널값비교 중첩질의와집합비교 상관중첩질의 SQL의

More information

Microsoft PowerPoint 웹 연동 기술.pptx

Microsoft PowerPoint 웹 연동 기술.pptx 웹프로그래밍및실습 ( g & Practice) 문양세강원대학교 IT 대학컴퓨터과학전공 URL 분석 (1/2) URL (Uniform Resource Locator) 프로토콜, 호스트, 포트, 경로, 비밀번호, User 등의정보를포함 예. http://kim:3759@www.hostname.com:80/doc/index.html URL 을속성별로분리하고자할경우

More information

PostgreSQL 2 Uniersity of California at Berkeley ( ) 에서개발된관계형데이터베이스서버인 Ingres 가시초 ( 후에 Computer Associates 에인수됨 ) 1

PostgreSQL 2  Uniersity of California at Berkeley ( ) 에서개발된관계형데이터베이스서버인 Ingres 가시초 ( 후에 Computer Associates 에인수됨 ) 1 ERwin 과 PostgreSQL 연동하기 인하대학교지리정보공학과데이터베이스실습 PostgreSQL 2 http://www.postgresql.org/ Uniersity of California at Berkeley (1977-1985) 에서개발된관계형데이터베이스서버인 Ingres 가시초 ( 후에 Computer Associates 에인수됨 ) 1996 년부터

More information

Microsoft PowerPoint - GUI _DB연동.ppt [호환 모드]

Microsoft PowerPoint - GUI _DB연동.ppt [호환 모드] GUI 설계 6 주차 DB 연동김문정 tops@yd.ac.kr 강의순서강의전환경 JDK 설치및환경설정톰캣설치및환경설정이클립스 (JEE) 설치및환경설정 MySQL( 드라이버 ) 설치및커넥터드라이브연결 DB 생성 - 계정생성이클립스에서 DB에연결서버생성 - 프로젝트생성 DB연결테이블생성및등록 2 MySQL 설치확인 mysql - u root -p MySQL 에데이터베이스추가

More information

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100 2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack

More information

Microsoft Word - SQL튜닝_실습교재_.doc

Microsoft Word - SQL튜닝_실습교재_.doc * 실습환경 * 1. 오라클데이터베이스의튜닝실습을하기위해서는기본적인테이블과데이터가필요합니다. 다음과같은절차에의해환경설정을하십시오. 1) 강사가제공하는 Export 된파일 (scott.dmp) 을자신의 ORACLE 경로에저장하십시오. [C: ] cd C: ORACLE ORA92 BIN [C: ] dir scott.dmp scott.dmp 2) SYSTEM 사용자로접속하여

More information

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770> 연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.

More information

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname=

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id=entitymanagerfactory class=org.springframework.orm.jpa.localentitymanagerfactorybean p:persistenceunitname= JPA 와 Hibernate - 스프링의 JDBC 대신에 JPA를이용한 DB 데이터검색작업 - JPA(Java Persistence API) 는자바의 O/R 매핑에대한표준지침이며, 이지침에따라설계된소프트웨어를 O/R 매핑프레임워크 라고한다. - O/R 매핑 : 객체지향개념인자바와관계개념인 DB 테이블간에상호대응을시켜준다. 즉, 객체지향언어의인스턴스와관계데이터베이스의레코드를상호대응시킨다.

More information

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Example 3.1 Files 3.2 Source code 3.3 Exploit flow

More information

13주-14주proc.PDF

13주-14주proc.PDF 12 : Pro*C/C++ 1 2 Embeded SQL 3 PRO *C 31 C/C++ PRO *C NOT! NOT AND && AND OR OR EQUAL == = SQL,,, Embeded SQL SQL 32 Pro*C C SQL Pro*C C, C Pro*C, C C 321, C char : char[n] : n int, short, long : float

More information

PowerPoint Presentation

PowerPoint Presentation 데이터전처리 Data Preprocessing 05 데이터통합 목차 1. 개체식별 2. 중복 3. 상관분석 4. 데이터값충돌탐지및해결 데이터전처리 (Data Preprocessing) - 05 데이터통합 3 1. 개체식별 개체식별문제Entity Identification Problem 이현호, Python 과 SQL 을활용한실전데이터전처리, 카오스북, 2018.

More information

201502IC1AP-1 DB 구축 2015 학년도 2 학기 프로젝트특강보고서 프로젝트명 : DB 구축 ( DB ) 2015 년 11 월 20 일 지도교수 : 황치곤교수님 학과 : 정보통신공학과 1팀제출자 : 역할성명학번 조장 조재석 조원 송찬호 2

201502IC1AP-1 DB 구축 2015 학년도 2 학기 프로젝트특강보고서 프로젝트명 : DB 구축 ( DB ) 2015 년 11 월 20 일 지도교수 : 황치곤교수님 학과 : 정보통신공학과 1팀제출자 : 역할성명학번 조장 조재석 조원 송찬호 2 201502IC1AP-1 DB 구축 2015 학년도 2 학기 프로젝트특강보고서 프로젝트명 : DB 구축 ( DB ) 2015 년 11 월 20 일 지도교수 : 황치곤교수님 학과 : 정보통신공학과 1팀제출자 : 역할성명학번 조장 조재석 2015671001 조원 송찬호 2015671014 조원 김현종 2015671010 광운대학교정보과학교육원 정보통신공학과 61

More information

MVVM 패턴의 이해

MVVM 패턴의 이해 Seo Hero 요약 joshua227.tistory. 2014 년 5 월 13 일 이문서는 WPF 어플리케이션개발에필요한 MVVM 패턴에대한내용을담고있다. 1. Model-View-ViewModel 1.1 기본개념 MVVM 모델은 MVC(Model-View-Contorl) 패턴에서출발했다. MVC 패턴은전체 project 를 model, view 로나누어

More information

제8장 자바 GUI 프로그래밍 II

제8장 자바 GUI 프로그래밍 II 제8장 MVC Model 8.1 MVC 모델 (1/7) MVC (Model, View, Controller) 모델 스윙은 MVC 모델에기초를두고있다. MVC란 Xerox의연구소에서 Smalltalk 언어를바탕으로사용자인터페이스를개발하기위한방법 MVC는 3개의구성요소로구성 Model : 응용프로그램의자료를표현하기위한모델 View : 자료를시각적으로 (GUI 방식으로

More information

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074> SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......

More information

슬라이드 1

슬라이드 1 Tadpole for DB 1. 도구개요 2. 설치및실행 4. 활용예제 1. 도구개요 도구명 소개 Tadpole for DB Tools (sites.google.com/site/tadpolefordb/) 웹기반의데이터베이스를관리하는도구 Database 스키마및데이터관리 라이선스 LGPL (Lesser General Public License) 특징 주요기능

More information

[ 목차 ] 5.1 데이터베이스프로그래밍개념 5.2 T-SQL T-SQL 문법 5.3 JAVA 프로그래밍 2

[ 목차 ] 5.1 데이터베이스프로그래밍개념 5.2 T-SQL T-SQL 문법 5.3 JAVA 프로그래밍 2 5 장 SQL 응용 데이터베이스실험실 1 [ 목차 ] 5.1 데이터베이스프로그래밍개념 5.2 T-SQL 5.2.1 T-SQL 문법 5.3 JAVA 프로그래밍 2 5.1 데이터베이스프로그래밍개념 프로그래밍 이라고하면프로그램소스를설계하고, 작성하고, 디버깅하는과정을말한다. 프로그램 혹은소프트웨어는컴퓨터에서주어진작업을하는명령어나열을말한다. 데이터베이스프로그래밍은명확한정의는없지만데이터베이스에데이터를정의하고,

More information

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL 다양핚예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저 10 장 view 를배웁니다 1 - View 란가상의테이블이다! 2 1. 단순 View (Simple View) SCOTT>CONN / AS SYSDBA; SYS>GRANT CREATE VIEW TO scott ; CREATE [OR REPLACE] [ FORCE NOFORCE] VIEW view

More information

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi 소프트웨어공학 Tutorial #2: StarUML Eun Man Choi emchoi@dgu.ac.kr Contents l StarUML 개요 l StarUML 소개및특징 l 주요기능 l StarUML 화면소개 l StarUML 설치 l StarUML 다운 & 설치하기 l 연습 l 사용사례다이어그램그리기 l 클래스다이어그램그리기 l 순서다이어그램그리기 2

More information

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager are trademarks or registered trademarks of Ari System, Inc. 1 Table of Contents Chapter1

More information

<4D F736F F F696E74202D20BFC0B6F3C5AC2D31C0E52DB5A5C0CCC5CDBAA3C0CCBDBA20BDC3BDBAC5DB2E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BFC0B6F3C5AC2D31C0E52DB5A5C0CCC5CDBAA3C0CCBDBA20BDC3BDBAC5DB2E BC8A3C8AF20B8F0B5E55D> 컴퓨터를사용하여정보를수집하고분석하는데데이터베이스기술이 활용되고있음 정보와데이터는서로다름 데이터베이스 (database) 의정의 데이터베이스는조직체의응용시스템들이공유해서사용하는운영데이터 (operational data) 들이구조적으로통합된모임이다. 데이터베이스의 구조는사용되는데이터모델에의해결정된다. 2 ( 계속 ) 데이터베이스의예 대학에서는데이터베이스에학생들에관하여신상정보,

More information

Microsoft PowerPoint MySQL 연동.ppt

Microsoft PowerPoint MySQL 연동.ppt 고급웹프로그래밍 () Lectures 21 & 22: 2005 년중등 1급정교사연수 문양세컴퓨터과학과강원대학교자연과학대학 데이터베이스? (1/4) 데이터베이스 (database), DBMS 처리 / 관리하고자하는정보혹은데이터를모아놓은저장소 저장된정보에의미를부여하고, 다양한연산 ( 검색, 갱신등 ) 을제공하는소프트웨어시스템 사용자에의해지시되는일련의연산 (transaction)

More information

제 3강 역함수의 미분과 로피탈의 정리

제 3강 역함수의 미분과 로피탈의 정리 제 3 강역함수의미분과로피탈의정리 역함수의미분 : 두실수 a b 와폐구갂 [ ab, ] 에서 -이고연속인함수 f 가 ( a, b) 미분가능하다고가정하자. 만일 f '( ) 0 이면역함수 f 은실수 f( ) 에서미분가능하고 ( f )'( f ( )) 이다. f '( ) 에서 증명 : 폐구갂 [ ab, ] 에서 -이고연속인함수 f 는증가함수이거나감소함수이다 (

More information

PowerPoint Presentation

PowerPoint Presentation 데이터종속성과정규화 이장의주요내용 데이터의잘못된논리적표현으로인해발생하는이상현 상들 함수종속성 정규화 제 1 정규형, 제 2 정규형, 제 3 정규형, BCNF 제 4 정규형, 제 5 정규형 참고문헌 데이타베이스시스템, 이석호저, 정익사 (chapter 11 장 ), 2005 년 2 데이타의논리적표현 조직체가가지고있는대량의운용데이터를어떻게조직해야효율적으로관리할수있는가?

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조 - Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]

More information

슬라이드 제목 없음

슬라이드 제목 없음 컴퓨터를사용하여정보를수집하고분석하는데데이터베이스기술이활용되고있음 정보와데이터는서로다름 데이터베이스 (database) 의정의 데이터베이스는조직체의응용시스템들이공유해서사용하는운영데이터 (operational data) 들이구조적으로통합된모임이다. 데이터베이스의구조는사용되는데이터모델에의해결정된다. 2 ( 계속 ) 데이터베이스의예 대학에서는데이터베이스에학생들에관하여신상정보,

More information

슬라이드 1

슬라이드 1 마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***

More information

구축환경 OS : Windows 7 그외 OS 의경우교재 p26-40 참조 Windows 의다른버전은조금다르게나타날수있음 Browser : Google Chrome 다른브라우저를사용해도별차이없으나추후수업의모든과정은크롬사용 한

구축환경 OS : Windows 7 그외 OS 의경우교재 p26-40 참조 Windows 의다른버전은조금다르게나타날수있음 Browser : Google Chrome 다른브라우저를사용해도별차이없으나추후수업의모든과정은크롬사용   한 수업환경구축 웹데이터베이스구축및실습 구축환경 OS : Windows 7 그외 OS 의경우교재 p26-40 참조 Windows 의다른버전은조금다르게나타날수있음 Browser : Google Chrome 다른브라우저를사용해도별차이없으나추후수업의모든과정은크롬사용 http://chrome.google.com 한림대학교웹데이터베이스 - 이윤환 APM 설치 : AUTOSET6

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 HTML5 웹프로그래밍입문 부록. 웹서버구축하기 1 목차 A.1 웹서버시스템 A.2 PHP 사용하기 A.3 데이터베이스연결하기 2 A.1 웹서버시스템 3 웹서버의구축 웹서버컴퓨터구축 웹서버소프트웨어설치및실행 아파치 (Apache) 웹서버가대표적 서버실행프로그램 HTML5 폼을전달받아처리 PHP, JSP, Python 등 데이터베이스시스템 서버측에데이터를저장및효율적관리

More information

슬라이드 제목 없음

슬라이드 제목 없음 관계데이터모델에서지원되는두가지정형적인언어 SQL 관계해석 (relational calculus) 원하는데이터만명시하고질의를어떻게수행할것인가는명시하지않는선언적인언어 관계대수 (relational algebra) 어떻게질의를수행할것인가를명시하는절차적인어 관계대수는상용관계 DBMS들에서널리사용되는 SQL의이론적인기초 관계대수는 SQL을구현하고최적화하기위해 DBMS의내부언어로서도사용됨

More information

Microsoft PowerPoint - 2장 (DBConcepts) [호환 모드]

Microsoft PowerPoint - 2장 (DBConcepts) [호환 모드] 제 2 장 데이타베이스시스템개념과아키텍처 Fundamentals of Database Systems R. A. Elmasri and S. B. Navathe Copyright 2002 황규영홍의경음두헌박영철김진호조완섭 목차 2.1 데이타모델, 스키마, 인스턴스 2.2 DBMS 아키텍처와데이타독립성 2.3 데이타베이스언어와인터페이스 2.4 데이타베이스시스템환경

More information