Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Slides:



Advertisements
Similar presentations
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Advertisements

PARK SUNGJIN Oracle 설치 PARK SUNGJIN
ㅎㅎ 구조체 C++ 프로그래밍 기초 : 객체지향의 시작 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스
You YOungseok 데이터베이스 테이블 및 인덱스 You YOungseok.
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
최윤정 Java 프로그래밍 클래스 상속 최윤정
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
연결리스트(linked list).
제 9 장 구조체와 공용체.
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
6장 Mysql 명령어 한빛미디어(주).
MySQL 및 Workbench 설치 데이터 베이스.
데이터베이스 및 설계 금오공과대학교 컴퓨터공학부 이 이섭.
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
6 장. ER-관계 사상에 의한 관계 데이터베이스 설계
3장. 데이터베이스 구축의 전체 과정 미리 실습하기
5장 Mysql 데이터베이스 한빛미디어(주).
ALLPPT.com _ Free PowerPoint Templates, Diagrams and Charts
07 그룹 함수 그룹 함수의 개념 그룹 함수의 종류 데이터 그룹 생성 HAVING 절.
2장. 관계 데이터 모델과 제약조건 관계 데이터 모델은 지금까지 제안된 데이터 모델들 중에서 가장 개념이 단순한 데이터 모델의 하나 IBM 연구소의 E.F. Codd가 1970년에 관계 데이터 모델을 제안함 관계 데이터 모델을 최초로 구현한 가장 중요한 관계 DBMS 시제품은.
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
23장. 구조체와 사용자 정의 자료형 2.
17강. 데이터 베이스 - I 데이터 베이스의 개요 Oracle 설치 기본적인 SQL문 익히기
2007 1학기 11 프로젝트 기초 실습.
01 데이타베이스 개론 데이타베이스의 등장 배경 데이타베이스의 발전 과정 데이타베이스의 정의 데이타베이스의 특징
5장 Mysql 데이터베이스 한빛미디어(주).
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
You YoungSEok Oracle 설치 You YoungSEok
C 프로그래밍 C언어 (CSE2035) (Chap11. Derived types-enumerated, structure, and union) (1-1) Sungwook Kim Sogang University Seoul, Korea Tel:
환경 설정 예제 데이터베이스 생성 - 그림 3.34의 SQL Server 관리 스튜디오 창의 왼쪽 영역의 데이터베
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
ER-관계 사상에 의한 관계 데이터베이스 설계
15장 컬렉션 프레임워크 Section 1 컬렉션 프레임워크의 개요 Section 2 리스트 Section 3 셋
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
Chapter 03. 관계 데이터베이스 설계.
05. Relational DBMS 명지대학교 ICT 융합대학 김정호.
MovieStory 작성자 홍성혁 소속 전자전기컴퓨터공학부 학번
Database Management System
7장. 릴레이션 정규화 릴레이션 정규화 부주의한 데이터베이스 설계는 제어할 수 없는 데이터 중복을 야기하여 여러 가지 갱신 이상(update anomaly)을 유발함 어떻게 좋은 데이터베이스 설계를 할 것인가? 데이터베이스에 어떤 릴레이션들을 생성할 것인가? 각 릴레이션에.
데이터 베이스 DB2 관계형 데이터 모델 권준영.
Fucntion 요약.
CHAP 21. 전화, SMS, 주소록.
객체기반 SW설계 팀활동지 4.
문성우 SQL 실습 Part Ⅰ 문성우.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
제 8 장 ER-관계 사상에 의한 관계 데이타베이스 설계
14 뷰(View) 뷰의 개념 뷰 관리.
Part 2 개념적 데이터 모델 Copyright © 2006 by Ehan Publishing Co. All rights reserved.
Chapter 10 데이터 검색1.
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
ER-관계 사상에 의한 관계데이터베이스 설계 충북대학교 구조시스템공학과 시스템공학연구실
제 4 장 Record.
07. DB 설계 명지대학교 ICT 융합대학 김정호.
Chapter 2: Intro to Relational Model
ER-관계 사상에 의한 관계 데이터베이스 설계
14 뷰(View) 뷰의 개념 뷰 관리.
 6장. SQL 쿼리.
                              데이터베이스 설계 및 실습 #6 - SQL 실습 한국외국어대학교 DaPS 연구실                              
임시테이블과 테이블변수 SQLWorld Study Group - 최명환 -.
11장. 보안과 권한 관리 보안 권한 관리. 11장. 보안과 권한 관리 보안 권한 관리.
7 생성자 함수.
6 객체.
8장. 데이터베이스 설계 데이터베이스 설계 단계 요구 사항 분석 개념적 설계 논리적 설계 물리적 설계와 구현.
교과서 78쪽 학습 목표 정보 관리의 필요성을 이해할 수 있다. 데이터베이스의 개념과 필요성을 이해할 수 있다.
Presentation transcript:

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 제9장 객체-관계 데이터베이스 내포 릴레이션 복합형과 객체 지향성 복합형을 가진 질의 복합값과 복합 객체의 생성 객체 지향과 객체-관계 데이터베이스의 비교 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 객체-관계 데이터 모델 관계형 데이터 모델에 객체 지향성과 추가 데이터형을 다루기 위한 구조체를 포함시켜 확장시켰다. 튜플의 애트리뷰트에 내포 릴레이션과 같은 비원자 값을 포함해 복합형을 갖도록 한다. 모델링 능력은 확장시킨 반면, 특히 데이터에의 선언적 액세스같은 관계형 기본은 유지한다. 기존의 관계형 언어와의 양립성을 향상시킴 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 내포 릴레이션 동기 : 비원자 도메인을 허용하자(원자적≡나누어지지 않음) 비원자 도메인의 예 : 정수들의 집합 또는 튜플들의 집합 복합 데이터를 가진 어플리케이션에 대해 보다 직관적인 모델링을 허용하자. 직관적 정의: 원자(스칼라)값을 허용하는 곳에 릴레이션을 허용하자 - 릴레이션내에 릴레이션 관계형 모델의 수학적 기초를 유지한다. 제1정규형에 위배된다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 내포 릴레이션의 예 예 : 문서 검색 시스템 각 문서에는 다음을 가진다. 제목 저자들의 집합 입수한 날짜 및 키워드의 집합 비-1NF 문서 릴레이션 title author-list date Keyword-list Day month year salesplan {Smith, Jones} 1 April 79 {profit, strategy} status report {Jones, Frick} 17 June 85 {profit, personnel} doc Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 내포 릴레이션의 1NF 버전 doc의 1NF버전 flat-doc Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 내포 릴레이션의 4NF 분해 다음과 같은 다중값 종속을 가진다는 가정하에 flat-doc의 어색함을 제거한다: title →→ author title →→ keyword title → day month year 다음의 스키마를 사용해 flat-doc을 4NF로 분해한다: (title, author) (title, keyword) (title, day, month, year) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 flat-doc의 4NF 분해 title author salesplan Smith salesplan Jones status report Jones status report Frick title keyword salesplan profit salesplan strategy status report profit status report personnel title day month year salesplan 1 April 89 status report 1 June 94 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 4NF 스키마에 가지는 문제점 4NF 설계는 사용자의 질의에 죠인을 포함하도록 한다. 4NF 릴레이션들의 조인으로 정의된 1NF 관계형 뷰 flat-doc: 사용자들이 죠인을 수행할 필요가 없음 그러나 튜플과 문서간의 1대1 대응을 잃게됨 여기서 내포 릴레이션 표현이 보다 더 자연스럽다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 복합형과 객체 지향성 관계형 모델에의 확장은 다음을 내포: 내포 릴레이션 복합형 세분화 (is-a 관계) 상속 객체 식별성 SQL 확장을 제공할 것이다. SQL-3 표준이 1997년 현재 개발중 SQL-3 초안인 XSQL 언어와 SQL의 Illustra 확장에 넓게 기초하여 설명 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 구조형과 집단형 새로운 형과 새로운 테이블을 정의한다. create type MyString char varying. create type MyDate (day integer, month char(10), year integer) create type Document (name MyString, author-list setof(MyString), date MyDate, keyword-list setof(MyString)) create table doc of type Document Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 구조형과 집단형 (계속) 일반적인 관계형 데이터베이스에서의 테이블 정의와는 달리, doc 테이블 정의에는 집합인 애트리뷰트와 MyDate 같은 구조적 애트리뷰트를 허용한다. E-R도의 복합 애트리뷰트와 다중값 애트리뷰트가 직접 표현되도록 한다. 위의 문장을 사용해 생성된 형은 데이터베이스에 저장된 스키마에 기록된다. 테이블을 직접 생성할 수 있다. create table doc (name MyString, author-list setof(MyString), date MyDate, keyword-list setof(MyString)) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 형의 상속 사람을 위한 다음 형 정의를 고려해 보자. create type Person (name MyString, social-security integer) 상속을 이용해 student와 teacher 형을 정의한다. create type Student (degree MyString, department MyString) under Person create type Teacher (salary integer, department MyString) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 형의 상속(계속) 조교에 관한 정보를 저장하고 두 부서의 존재간의 모순을 피하기 위해 as절을 사용한다. TeachingAssistant 형의 정의 create type TeachingAssistant under Student with (department as student-dept), Teacher with (department as teacher-dept) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 테이블 계층에서의 상속 엔티티가 한번에 하나 이상의 테이블에 존재하도록 하여 객체에 여러 형을 갖도록 한다. people 테이블: create table people (name MyString, social-security integer) 그리고 students와 teachers 테이블을 다음과 같이 정의. create table students (degree MyString, department MyString) under people create table teachers (salary integer, department MyString) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 테이블 상속 : 역할 테이블 상속은 역할을 모델링하는데 유용하다. 객체에 가장 특정한 형을 가지지 않고 여러 형을 가지도록 한다(형 상속과는 다름). 예를 들어, 하나의 객체가 students와 teachers 양쪽하에 있는 student-teachers 서브 테이블에 있지 않고 students와 teachers 서브 테이블에 동시에 있을 수 있다. 객체는 역할을 얻고 잃을 수 있다: 서브 테이블에 객체를 삽입/삭제함에 따름 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 테이블 상속: 일관성 요구 조건 서브 테이블과 수퍼 테이블상의 일관성 요구 조건 수퍼 테이블 people의 각 튜플은 각 students와 teachers 테이블의 기껏해야 하나의 튜플에 대응. students와 teachers의 각 튜플은 people의 정확히 한 튜플에 대응해야 함. 수퍼 테이블의 주 키 이외에 상속되는 애트리뷰트는 저장될 필요가 없으며, 주 키에 근거해 수퍼 키와의 죠인으로 유도될 수 있다. 형과 함께 다중 상속이 가능하다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 참조형 객체 지향 언어는 객체를 생성하고 참조하는 기능을 제공한다. Document형의 author-list 필드를 다음과 같이 재정의한다. author-list setof(ref(Person)) 이제 author-list는 Person 객체에 대한 참조 집합임. 테이블의 튜플들은 또한 그들에 대한 참조를 가질 수 있다. 테이블 people의 튜플에 대한 참조는 ref(people) 형을 갖는다. 주 키 또는 시스템이 생성한 튜플 식별자를 사용해 구현될 수 있다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 릴레이션 값 애트리뷰트 릴레이션명이 나타나는 어느곳에나 릴레이션을 평가하는 표현식이 나타나도록 함으로써, 확장된 SQL은 내포 릴레이션 구조의 장점을 취할 수 있다. 다음의 릴레이션 pdoc을 고려해 보자. create table pdoc ( name MyString, author-list setof(ref(people)), date MyDate, keyword-list setof(MyString)) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 예제 질의 키워드중의 하나에 “database”를 가진 모든 문서를 찾아라. select name from pdoc where “database” in keyword-list 각 문서와 문서의 각 저자에 대해 “document-name, author-name”형의 쌍을 내포하는 릴레이션을 생성하라. select B.name, Y.name from pdoc as B, B.author-list as Y 각 문서의 이름과 저자의 수를 찾아라. select name, count(author-list) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 경로 표현식 복합 애트리뷰트를 참조하기 위해 점 표기법이 참조와 함께 사용될 수있다. 앞의 people 테이블과 phd-student 테이블을 고려해 보자. create table phd-students (advisor ref(people)) under people 모든 박사과정 학생의 지도교수명을 찾아라. select students.advisor.name from phd-students pdoc 릴레이션내 문서들의 모든 저자명을 찾아라. select Y.name from pdoc.author-list as Y Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 비내포 내포 릴레이션을 제1정규형으로 변환 내포 릴레이션을 내포 릴레이션 또는 애트리뷰트로서 구조적형을 갖지 않는 하나의 보통 릴레이션으로 변환 doc 릴레이션을 비내포 하라(author-list와 keyword-list는 내포 릴레이션이고 name과 date는 내포되지 않음) select name, A as author, date.day, date.month, date.year, K as keyword from doc as B, B.author-list as A, B.keyword-list as K from절의 B는 doc에 범위를 한정하는 것으로 선언됨 A는 그 문서에 대한 author-list내의 저자로 한정 K는 문서의 keyword-list내의 키워드로 범위를 한정하는 것으로 선언됨 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 내포 1NF 릴레이션을 내포 릴레이션으로 변환하는 것. SQL내 그룹핑의 확장으로 수행될 수 있다. 릴레이션 flat-doc을 애트리뷰트 keyword에 대해 내포하라: select title, author, (day, month, year) as date, set(keyword) as keyword-list from flat-doc groupby title, author, date title author date keyword-list (day, month, year) salesplan Smith (1, April, 89) {profit, strategy} salesplan Jones (1, April, 90) {profit, strategy} status report Jones (17, June, 94) {profit, personnel} status report Frick (17, June, 95) {profit, personnel} Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 함수 주어진 문서에서 저자의 수를 반환하는 함수를 정의하라. create function author-count(one-doc Document) returns integer as select count(author-list) from one-doc 두명 이상의 저자를 가진 모든 문서명을 찾아라. select name from doc where author-count(doc) > 1 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 함수 (계속) 데이터베이스 시스템은 C 또는 C++와 같은 다른 언어로 작성된 함수의 사용을 허용한다. 장점: 많은 연산에 대해 보다 효율적이며 보다 표현력이 강하다. 단점 함수를 구현하는 코드가 데이터베이스 시스템내에 로드될 필요가 있다. 데이터베이스 구조의 우발적인 파손의 위험 부담 보안 위험 부담 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 복합 값과 복합 객체의 생성 doc 릴레이션으로 정의된 형의 튜플을 생성하라. (“salesplan”, set(“Smith”, “Jones”), (1, “April”, 89), set(“profit”, “strategy”)) 복합 애트리뷰트 date의 값은 괄호 내에 그의 애트리뷰트 day, month및 year를 나열해 생성한다. 집합 값 애트리뷰트 author-list와 keyword-list는 키워드 set 다음의 괄호 내에 그의 원소를 열거해 생성한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 예제 질의 위의 튜플을 릴레이션 doc에 삽입하라. insert into doc values (“salesplan”, set(“Smith”, “Jones”), (1, “April”, 89), set(“profit”, “strategy”)) 질의에서 복합값을 사용할 수 있다. 문서명이 “salesplan”, “opportunities” 또는 “risks”중의 하나인 모든 문서명과 날짜를 찾아라. select name, date from doc where name in set(“salesplan”, “opportunities”, “risks”) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 추가적인 개념 다중 집합값은 set을 multiset으로 대치해 생성할 수 있다. Constructor 함수를 사용해 새로운 객체를 생성한다. 형이 T인 객체의 constructor 함수는 T()이다. 형 T의 초기화되지 않은 새로운 객체를 생성해 그의 oid 필드를 채우고 객체를 반환한다. 객체의 필드는 초기화되어야 한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수

Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수 객체지향과 객체-관계 데이터이스의 비교 다양한 데이터베이스 시스템의 강점 요약 관계형 시스템: 단순한 데이터형, 질의, 높은 보호력 OODB에 근거한 영속 프로그래밍 언어: 복합 데이터형, 프로그래밍 언어와의 결합, 높은 성능 객체-관계 시스템: 복합 데이터형, 질의, 높은 보호력 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수