[데이터베이스] #14 데이터베이스 설계 이론
·
전공/데이터베이스
목차좋은 스키마와 나쁜 스키마함수 종속성 이론정규형분해 및 설계 1. 좋은 스키마와 나쁜 스키마1. 나쁜 스키마세 가지 이상(anomaly)을 가짐갱신 이상삭제 이상입력 이상나쁜 스키마 예)mybadtable1(cID, title, deptName, credit, chairman, bulding, budget)→ 두 관계 “course”와 “department”가 결합되어 있음2. 함수 종속성함수 종속성은 일부 속성의 값이 다른 속성의 값을 유일하게 결정하는 것을 의미A BAB14142435동일한 A값에 대해 항상 동일한 B값A는 B를 함수적으로 결정B는 A를 함수적으로 결정하지 않음슈퍼 키는 관계 속성의 일부분으로서 전체 속성을 함수적으로 결정하는 속성슈퍼 키는 유일하기 때문함수 종속성은 두 가지 방식..
[데이터베이스] #13 개체-관계성 데이터 모델
·
전공/데이터베이스
1. 개체 및 관계성1. 개체(entity), 관계성개체: 구별이 가능한 객체를 의미, 단일 student관계성: 개체 간의 연관성, 학생과 과목 개체 간의 “수강하다”개체 집합, 관계성 집합으로 묶을 수 있음개체와 관계성은 속성을 가질 수 있음2. 속성개체 또는 관계성이 가지는 특성단순 속성/복합 속성단일 값 속성/다수 값 속성유도된 속성주소 ⇒ 거리, 도시, 도, 우편번호 (복합 속성)거리 ⇒ 거리번호, 거리명, 아파트번호 (복합 속성)나이 ⇒ 생년월일로 유추 (유도된 속성)3. 관계성 집합 차수관계성과 관련되는 개체의 개수4. 카디날리티 제약One to oneOne to manyMany to oneMany to Many5. 키테이블에 대한 슈퍼 키, 후보 키, 주 키 개념과 동일슈퍼 키에서 후보 키..
[데이터베이스] #12 SQL 확장
·
전공/데이터베이스
목차SQL 절차적 확장외부 언어 함수/프로시저저장 프로시저SQL: 1999 함수 및 프로시저테이블 함수SQL 프로시저절차 생성자PL/SQL선언 및 예외선언부조건 로직루프사용자 정의 예외커서프로시저함수패키지 1. SQL 절차적 확장사용자는 SQL/PSM 또는 외부 프로그래밍 언어를 이용하여 함수와 프로시저를 개발할 수 있음ex)이미지 데이터 타입에 대한 중첩 판정 기능이미지 유사성 계산 기능1. 외부 언어 함수/프로시저Create procedure deptCountProc (in deptName varchar(20), out count integer)language Cexternal name '/usr/shlee/bin/deptCountProc';Create procedure deptCountPro..
[데이터베이스] #11 응용 개발
·
전공/데이터베이스
목차내장 SQLODBC 1. 내장 SQL1. 내장 SQL호스트 언어 중간 중간에 SQL 문장 삽입전처리(preprocessing) 과정을 꼭 거쳐야 함 → 이후 컴파일EXEC SQL BEGIN DECLARE SECTION ...EXEC SQL ;EXEC SQL ENC DECLARE SECTION;선언된 변수는 프로그램에서 사용할 때 반드시 콜론(:)을 접두사 형식으로 붙임2. 커서두 언어 간에 자료 처리 방식 차이로 인한 불일치 해결 필요 → cursordeclare: 커서 선언EXEC SQL declare myCursor cursor for select sID, name from student where totalCredit > :creditAmount;open: 질의 실행 (질의문의 결과 결정)EXE..
[데이터베이스] #10 오라클 실습 II
·
전공/데이터베이스
목차LOB 데이터 타임집합 연산dual 테이블문자열 처리 함수숫자형 처리 함수날짜형 처리 함수형 변환 함수뷰순환 질의시스템 및 객체 권한동의어트리거 구문 1. LOB 데이터 타입LOB 타입은 대용량 데이터를 저장/관리하기 위하여 사용BLOBCLOBNCLOBBFILEBFILE을 제외한 다른 데이터 타입은 트랜잭션 성질 지원트랜잭션 commit/rollback에 의한 UNDO/REDO 기능을 DBMS가 자체적으로 수행2. 집합 연산오라클 시스템은 union all만 지원intersect all, minis all 지원 x3. dual 테이블속성이 하나이며 터플이 하나인 sys 소유의 테이블4. 문자열 처리 함수Select sID, name, deptNamefrom studentwhere lower(name)..
[데이터베이스] #9 데이터베이스 주요 기능
·
전공/데이터베이스
목차뷰무결성제약트리거권한순환 질의 1. 뷰특정 사용자로부터 특정 속성을 숨기는 기능 → 데이터 보호, 편리성1. 정의create view 문장으로 정의Create view myProfessor asselect pID, name, deptNamefrom professor뷰 테이블은 터플을 저장하는 것이 아님가상 관계 (↔ 베이스 관계)데이터베이스 시스템이 뷰 정의를 활용하여 질의문을 처리뷰 정의베이스 테이블 사용 가능다른 뷰 사용 가능새로운 뷰를 정의할 때 자신의 뷰 사용 → 순환뷰recursive view비순환뷰와 다르게 처리2. 뷰 확장뷰에 대한 질의뷰 정의로 치환뷰가 아닌 베이스 테이블에 대한 질의문으로 바꿈뷰에 대한 변경 연산은 베이스 테이블에 대한 변경 연산으로 변환됨뷰에는 없으며 베이스 테이블에..
[데이터베이스] #8 SQL V (랭킹, 기타 기능)
·
전공/데이터베이스
목차랭킹랭킹널 값 랭크파티션 랭킹다른 랭킹 함수기타 기능기존 스키마/데이터 재활용대용량 객체 타입내장 날짜 타입사용자 정의 타입도메인트랜잭션색인(index)1. 랭킹상위 또는 하위 몇 개(또는 퍼센트)만의 터플을 반환1. 랭킹Select ID, rank() over (order by GPA desc) as sRankfrom studentGrades;랭크만 부여Select ID, rank() over (order by GPA desc) as sRankfrom studentGradesorder by sRank;랭크 부여 후 랭크 순으로 정렬(GPA는 평균 학점)rank(), dense_rank()100점, 100점, 80점, 80점, 60점의 데이터가 있을 때,rank(): 중복 값 상관 없이 개별적인 터플..
[데이터베이스] #7 SQL IV (중첩 서브질의)
·
전공/데이터베이스
목차IN 연산자비교 연산자상관 서브질의exists 구성요소 for allunique 구성요소from 절 서브질의lateral 절with 절Scalar 서브질의1. IN 연산자단일 값이 다수 값에 속하는가를 검사값이 하나가 아니고 여러 개로 구성되는 형태도 in 연산 적용 가능Select name, salaryfrom professorwhere pID in (10, 21, 22);pID 값으로 10, 21, 22 중 하나를 가지는 professor의 정보 반환Select distinct cIDfrom teacheswhere semester = 'Fall' and year = 2009 andcID not in ( select cID from teaches where semester = 'Spring' an..
[데이터베이스] #1~6 정리 (데이터베이스 소개 ~ 조인 테이블)
·
전공/데이터베이스
목차데이터베이스 소개데이터베이스 시스템 이점데이터 추상화 및 데이터 모델데이터베이스 시스템관계형 데이터 모델관계형 데이터 모델SQL I데이터베이스 언어DDL SQLDML SQLSQL IISelect널 값오라클 실습 (개념)DBA가 사용자 생성하기첫 DB 만들기SQL III집계 함수조인 테이블 1. 데이터베이스 소개1. 데이터베이스 시스템 이점데이터 추상화 제공데이터 접근의 용이성 제공데이터 중복 및 불일치성에 대한 제어 용이데이터 무결성 제약조건 유지 용이갱신 원자성 제공다수 사용자 동시성 제어데이터 보호데이터 백업 및 회복2. 데이터 추상화 및 데이터 모델인스턴스 = 데이터의 값(객체, 값)스키마 = 데이터의 구조📌 3단계 데이터 추상화물리적 스키마논리적 스키마뷰 스키마📌 데이터 독립성물리적 데이터..
[데이터베이스] #6 SQL III (집계 함수, 조인 테이블)
·
전공/데이터베이스
목차집계 함수count 절group by 절having 절널 값과 집계 함수조인 테이블외부 조인조인 조건조인 예제1. 집계 함수avg, min, max, sum, count평균값, 최솟값, 최댓값, 값의 합, 개수count 절Select count(*) from studentcount(*) 테이블의 터플 개수Select count(**distinct** gender) from student유일한 값의 개수를 반환Male, Female만 있으므로 결과는 2group by 절Select deptName, avg(salary)from professorgroup by daptName;daptName 속성 값으로 그룹을 나눈 후각 그룹에 대하여 salary 속성의 평균값을 구하는 질의어group by 절을 사용할..