Computer Science Suan Lee - Computer Science - 06 데이터베이스 1
06 데이터베이스 - Computer Science - 06 데이터베이스 2
목차 1. 데이터베이스의개요 2. 데이터모델 3. 관계형데이터베이스 4. SQL 5. 모바일데이터베이스 - Computer Science - 06 데이터베이스 3
데이터베이스의개념 데이터베이스란방대한데이터를효율적으로관리하기위해컴퓨터에통합 저장한것 데이터베이스관리시스템 (DBMS) 이라는프로그램을이용하여관리 - Computer Science - 06 데이터베이스 4
파일처리시스템 각응용프로그램마다별도의데이터파일을유지 문제점 데이터종속 데이터중복 - Computer Science - 06 데이터베이스 5
데이터베이스의특징 데이터베이스에저장된데이터의특징 통합된데이터 (integrated data) 저장된데이터 (stored data) 운영데이터 (operational data) 공용데이터 (shared data) 데이터베이스의특징 실시간접근성 계속적인변화 동시공유 내용에의한참조 - Computer Science - 06 데이터베이스 6
데이터베이스관리시스템 사용자와응용프로그램에편리하고효율적인데이터베이스사용환경을제공하는소프트웨어 - Computer Science - 06 데이터베이스 7
데이터베이스관리시스템의종류 - Computer Science - 06 데이터베이스 8
데이터베이스관리시스템도입에따른장점 데이터의중복과불일치감소 사용자에게더나은서비스제공 시스템의융통성이향상됨 시스템개발및유지비용감소 표준화시행이용이 보안이향상됨 데이터무결성이향상됨 조직체의요구사항을파악하여조정할수있음 시스템의고장으로부터데이터베이스를복구할수있음 데이터베이스의공유와동시접근이가능함 - Computer Science - 06 데이터베이스 9
데이터베이스언어 데이터정의어 데이터저장구조, 데이터접근방법, 데이터형식등데이터베이스를구축하거나수정할때사용하는언어 데이터조작어 데이터베이스에저장된데이터를검색, 수정, 삽입, 삭제할때사용하는언어 데이터제어어 데이터를보호하고관리하는언어 데이터베이스의무결성유지, 보안및접근제어, 시스템장애로부터의복구, 병행수행제어기능등을수행 - Computer Science - 06 데이터베이스 10
데이터베이스사용자 응용프로그래머 프로그래밍언어 (C, COBOL 등 ) 를사용하여특정응용프로그램이나인터페이스를구현하는사람 최종사용자 데이터의검색, 삽입, 삭제, 갱신등을위해 DBMS 를사용하는사람 데이터베이스관리자 데이터정의어 (DDL) 와데이터제어어 (DCL) 를사용하여데이터베이스스키마를생성하고관리하는사람 - Computer Science - 06 데이터베이스 11
데이터모델의개념 데이터베이스구조의근간을이루는것 데이터베이스설계과정에서데이터의논리적인구조를표현하기위해사용하는도구 - Computer Science - 06 데이터베이스 12
계층형데이터모델 데이터는레코드와링크로구성된트리형태 링크로연결된레코드집합은부모 - 자식관계를표현 부모노드와자식노드간의관계는일대다관계 ADABAS, IMS, DMS-II 등 - Computer Science - 06 데이터베이스 13
네트워크형데이터모델 그래프구조에기반 레코드를노드로, 레코드와레코드간의관계는간선 (edge) 으로나타냄 레코드와레코드간의관계는다대다관계 코다실 (CODASYL) - Computer Science - 06 데이터베이스 14
관계형데이터모델 행과열로구성된 2 차원테이블에데이터를저장 테이블은데이터베이스에서표현하는하나의엔티티에관한정보를저장 DB2, Oracle, MySQL, MS SQL Server, Access 등 - Computer Science - 06 데이터베이스 15
객체지향형 / 관계형데이터모델 객체지향형데이터모델 객체지향프로그래밍의패러다임을기반으로함 오브젝티비티 (Objectivity), 젬스톤 (GemStone), O2, 온토스 (Ontos), 버산트 (Versant) 등 객체관계형데이터모델 관계형데이터모델에객체지향개념을더한모델 인포믹스 (Informix), 유니버설서버 (Universal Server), 오라클 9i(Oracle 9i) 등 - Computer Science - 06 데이터베이스 16
관계형데이터베이스의구조 릴레이션 ( 테이블 ) 으로구성된데이터항목들의집합 릴레이션은행과열로구성된 2 차원테이블 하나의릴레이션은하나의엔티티에관한데이터를저장 - Computer Science - 06 데이터베이스 17
관계형데이터베이스용어 튜플 속성 도메인 차수 카디널리티 널값 키 후보키 기본키 대체키 외래키 - Computer Science - 06 데이터베이스 18
무결성제약조건 도메인제약조건 각속성의값은반드시도메인에속한하나의값이어야함 속성의기본값과가능한값들의범위, 널값의허용여부등을지정 개체무결성제약조건 기본키를구성하는어떤속성도널값을가질수없음 참조무결성제약조건 외래키의값은참조된릴레이션의기본키값과같아야함 - Computer Science - 06 데이터베이스 19
관계형대수 관계형데이터베이스에데이터를삽입하고, 저장된데이터를검색, 수정, 삭제하는등의기능을수행하는언어 사용자가원하는데이터가무엇 (what) 인지와검색방법 (how) 까지기술하므로절차적언어 ( 예 ) Employee 릴레이션과 Department 릴레이션을이용 - Computer Science - 06 데이터베이스 20
선택연산 주어진릴레이션에서특정조건을만족하는튜플을구하는연산 σ 조건식 ( 릴레이션 ) Employee 릴레이션에서직위가 과장 인튜플을선택하는연산 σ 직위 = 과장 (Employee) - Computer Science - 06 데이터베이스 21
추출연산 주어진릴레이션에서원하는속성만발췌하는연산 π 속성리스트 ( 릴레이션 ) Employee 릴레이션에서 직위 속성만추출연산 π 직위 (Employee) - Computer Science - 06 데이터베이스 22
합집합연산 두개의릴레이션중어느한쪽또는양쪽에모두존재하는튜플을구하는연산 (π 속성리스트 ( 릴레이션 )) (π 속성리스트 ( 릴레이션 )) Employee 릴레이션에서직위가 과장 인튜플의부서번호와 Department 릴레이션에서사무실위치가 B201 인튜플의부서번호를모두구하는연산 (π 부서번호 (σ 직위 = 과장 (Employee))) (π 부서번호 (σ 사무실 = B201 (Department))) - Computer Science - 06 데이터베이스 23
교집합연산 두개의릴레이션에모두존재하는튜플을구하는연산 (π 속성리스트 ( 릴레이션 )) (π 속성리스트 ( 릴레이션 )) Employee 릴레이션에서과장과계장이함께근무하는부서번호를구하는연산 (π 부서번호 (σ 직위 = 과장 (Employee))) (π 부서번호 (σ 직위 = 계장 (Employee))) - Computer Science - 06 데이터베이스 24
차집합연산 릴레이션에속하지만다른릴레이션에는속하지않는튜플을구하는연산 (π 속성리스트 ( 릴레이션 )) (π 속성리스트 ( 릴레이션 )) 소속된직원이한명도없는부서의부서번호를구하는연산 (π 부서번호 (Department)) (π 부서번호 (Employee)) - Computer Science - 06 데이터베이스 25
카티전곱연산 두개의릴레이션에존재하는모든튜플의조합을구하는연산 릴레이션 1 X 릴레이션 2 Product 릴레이션과 Store 릴레이션에대한카티전곱을구하는연산 Product X Store - Computer Science - 06 데이터베이스 26
조인연산 두개의릴레이션에서특정조건을만족하는튜플을결합하여하나의튜플로만드는연산 릴레이션 1 조건식릴레이션 2 Employee 릴레이션과 Department 릴레이션을조인하는연산 Employee Employee. 부서번호 =Department. 부서번호 Department - Computer Science - 06 데이터베이스 27
조인연산 - Computer Science - 06 데이터베이스 28
조인연산 조인연산결과를이용하여총무부에서근무하는사원의이름을검색 π 성명 (σ 부서명 = 총무부 (Employee Employee. 부서번호 =Department. 부서번호 Department)) - Computer Science - 06 데이터베이스 29
나누기연산 두개의릴레이션 R(X, Y) 와 S(Y) 에대한나누기연산 R(X, Y) S(Y) 의결과는릴레이션 S의모든 Y값에관련된릴레이션 R의 X값출력 릴레이션 1 릴레이션 2 Product2 릴레이션을 Store 릴레이션으로나누는연산 Product2 π 영업점 (σ 영업점코드 = S1000 (Store)) - Computer Science - 06 데이터베이스 30
SQL 소개 관계형데이터베이스의조작과관리에사용되는데이터베이스질의용언어 IBM 의 DB2, 마이크로소프트의 Access 와 SQL Server 를비롯하여 Oracle, Sybase, Informix 등에서구조화질의어로널리사용 원하는데이터가무엇인지만기술하고비절차적언어 3 가지기능 데이터정의기능 데이터조작기능 데이터제어기능 - Computer Science - 06 데이터베이스 31
릴레이션생성 CREATE TABLE 문의형식 CREATE TABLE 릴레이션명 ( 속성 1 자료형 1 [NULL NOT NULL], 속성 2 자료형 2 [NULL NOT NULL], 속성 n 자료형 n [NULL NOT NULL]); - Computer Science - 06 데이터베이스 32
릴레이션생성 BookTable 릴레이션의정의문 CREATE TABLE BookTable (title_id CHAR(10) NOT NULL, title VARCHAR(50) NOT NULL, ISBN CHAR(10) NOT NULL, price INT NOT NULL, pubdate DATE, section_part CHAR(10), author CHAR(10) NOT NULL); BookTable 릴레이션을생성한후 9 개의튜플을저장 - Computer Science - 06 데이터베이스 33
릴레이션삭제 DROP TABLE 문의형식 DROP TABLE 릴레이션명 ; BookTable 릴레이션을삭제하는명령 DROP TABLE BookTable; - Computer Science - 06 데이터베이스 34
릴레이션변경 ALTER TABLE 문의형식 ALTER TABLE 릴레이션명 ADD 속성명자료형 ; ALTER TABLE 릴레이션명 MODIFY 속성명자료형 ; ALTER TABLE 릴레이션명 DROP 속성명 ; BookTable 릴레이션에 publisher 속성을추가하는명령 ALTER TABLE BookTable ADD publisher CHAR(20); - Computer Science - 06 데이터베이스 35
검색 SELECT 문의형식 SELECT [DISTINCT] 속성 _ 리스트 FROM 릴레이션 _ 리스트 [WHERE 조건 ] [GROUP BY 속성 _ 리스트 ] [HAVING 조건 ] [ORDER BY 속성 _ 리스트 [ASC DESC]]; - Computer Science - 06 데이터베이스 36
검색 SELECT 문의수행순서 SELECT author FROM BookTable WHERE title= 자료구조 ; - Computer Science - 06 데이터베이스 37
검색 모든속성검색 SELECT * FROM BookTable; - Computer Science - 06 데이터베이스 38
검색 일부속성검색 SELECT title, price, author, pubdate FROM BookTable; - Computer Science - 06 데이터베이스 39
검색 가격이 30,000 원이하인도서검색 SELECT title_id, title, price FROM BookTable WHERE price<=30000; - Computer Science - 06 데이터베이스 40
검색 section_part 가 공학 인도서검색 SELECT title_id, title, price, author, section_part FROM BookTable WHERE section_part= 공학 ; - Computer Science - 06 데이터베이스 41
검색 검색결과의정렬 ( 오름차순 ) SELECT title_id, title, price, author, section_part FROM BookTable ORDER BY price; - Computer Science - 06 데이터베이스 42
검색 검색결과의정렬 ( 내림차순 ) SELECT title_id, title, price, author, section_part FROM BookTable ORDER BY price DESC; - Computer Science - 06 데이터베이스 43
삽입 하나의튜플삽입 INSERT 문의형식 INSERT INTO 릴레이션명 ( 속성 1, 속성 2,, 속성 n) VALUES ( 값 1, 값 2,, 값 n); INSERT 문의수행결과 SELECT * FROM BookTable; BookTable 릴레이션에하나의튜플을삽입하는명령 INSERT INTO BookTable(title_id, title, ISBN, price, author) VALUES ( K301, 전자공학개론, 123-456, 23000, 박창순 ); - Computer Science - 06 데이터베이스 44
삽입 여러개의튜플삽입 INSERT 문의형식 INSERT INTO 릴레이션명 ( 속성 1, 속성 2,, 속성 n) SELECT 속성 _ 리스트 FROM 릴레이션 _ 리스트 WHERE 조건 ; BookTable 릴레이션에 SELECT 문을수행하여검색된두개의튜플을 ScienceTable 릴레이션에삽입하는연산 INSERT INTO ScienceTable(title_id, title, ISBN, price, pubdate, section_part, author) SELECT title_id, title, ISBN, price, pubdate, section_part, author FROM BookTable WHERE section_part = 자연과학 ; - Computer Science - 06 데이터베이스 45
삽입 여러개의튜플삽입 INSERT 문의수행결과 SELECT * FROM ScienceTable; - Computer Science - 06 데이터베이스 46
삭제 DELETE 문의형식 DELETE FROM 릴레이션명 WHERE 조건 ; BookTable 릴레이션에서 title_id 가 K301 인튜플을삭제하는명령 DELETE FROM BookTable WHERE title_id= K301 ; - Computer Science - 06 데이터베이스 47
삭제 DELETE 문의수행결과 SELECT * FROM BookTable; BookTable 릴레이션에서모든튜플을삭제하는명령 DELETE FROM BookTable; - Computer Science - 06 데이터베이스 48
갱신 UPDATE 문의형식 UPDATE 릴레이션명 SET 속성 1= 수식 1, 속성 2= 수식 2,, 속성 n= 수식 n WHERE 조건 ; BookTable 릴레이션에서 WHERE 절의조건 (section_part= 공학 ) 을만족하는튜플의 price 속성값을갱신하는명령 UPDATE BookTable SET price=price-500 WHERE section_part= 공학 ; - Computer Science - 06 데이터베이스 49
갱신 속성값의갱신 SELECT * FROM BookTable; - Computer Science - 06 데이터베이스 50
모바일데이터베이스의종류와특징 모바일데이터베이스 모바일기기를이용해현장업무에서발생한데이터를가공한후, 동기화기능을통해중앙서버로전송하는능력을갖춘데이터베이스 모바일데이터베이스의종류 SQLite, SQL Anywhere, DB2 Everyplace, SQL Server Compact, SQL Server Express, Oracle Database Lite, Couchbase Lite 등 모바일데이터베이스의특징 저사양기기에탑재가능 서버측데이터베이스의복제및동기화기능 내장형 (embedded) 데이터베이스 - Computer Science - 06 데이터베이스 51
모바일데이터베이스의활용분야 보험회사, 자동차회사 가스회사, 물류회사, 택배회사 백화점등 - Computer Science - 06 데이터베이스 52