8월 31일부터 시작!!
데이터 베이스 객체
뷰 하다말았음(저번주 내용)
뷰 - 가상의 테이블, 동적테이블
보안상의 이유 - 사용자 권한에 따라 미리 생성된 뷰만 보여준다.
복잡한 질의를 간편하게 - 미리 복잡한 질의에 대한 검색결과를 뷰로 만들어서 관리할 수 있다.
뷰는 수정기능이 없다.
뷰는 물리적인 테이블이 사라지면 같이 삭제된다.
update와 delete는 제약사항이 있다.
WITH CHECK OPTION - 옵션에 대해서만 insert, update만 가능하다. VIEW 의 조건식(WHERE)을 만족하는 데이터만 INSERT 또는 UPDATE가 가능하도록 하는 옵션
WITH READ ONLY - SELECT만 가능한 VIEW를 생성합니다.
인덱스(INDEX) - 테이블내의 원하는 행을 빠르게 찾아갈 수 있도록(빨리 검색할 수 있도록), 테이블에서 쓰여지는 선택적 객체이다.
select rowid 칼럼명
from 테이블명;
-> 결과값이 실제 데이터의 주소값이 출력된다.
자동인덱스 : PK, UK 제한 규칙에 의해 자동적으로 생성 (중복값이 없는 UK INDEX 생성)
수동 인덱스 : CREATE INDEX명령을 실행해서 생성(중복된 값을 허용하는 Non UK INDEX 생성)
테이블 크기가 최소 수십만 ~ 수천만 건 이상(그 이하에서는 인덱스 데이터가 더 크다)
10만건중에서도 조건과 JOIN 조건에 자주 사용하는 컬럼
FK 칼럼에는 반드시 인덱스를 생성한다.
- 다음과 같은 경우에는 INDEX 생성이 불필요
테이블이 작을 때(수천건 이내)
테이블이 자주 갱신(DML)될 때
면접 질문중에 중요한것들 - 뷰가 무엇인냐, 시퀀스가 무엇이냐, 수동인덱스를 언제걸어주냐
INDEX에서 검색할때는 이진트리를 활용
이진트리검색을 활용하여 5번안에 검색
https://ko.wikipedia.org/wiki/%EC%9D%B4%EC%A7%84_%ED%8A%B8%EB%A6%AC (이진트리 위키)
실제론 데이터베이스에 따라서 다르다.
rownum(가상컬럼)
물리적으로 저장되어 있는 컬럼이 아닌 모든 SQL문에서 사용할 수 있는 가상 칼럼
(엑셀에서 왼쪽에 행번호가 맥여져있는것과 비슷하다)
동적으로 생성되며 가상의 칼럼이다.
SYNONYM(동의어)
시노님은 오라클 객체(테이블, 뷰, 시퀸스 등)에 대체이름(Alias)를 말한다.
시노님은 실직적으로 그 자체가 Object가 아니라 Object에 대한 직접적인 참조이다.
사용하는 이유 - 데이터베이스의 투영성을 제공, 객체이름을 짧게만들어서 간단하게 검색을 가능케 한다.
◈
오브젝트의 실제 이름과 소유자 그리고 위치를 감춤으로써 database
보안을 개선하는데 사용
◈
Object에의
Public Access를
제공
◈
Remote Database의 Table, View 등에
투명성을 제공
◈
Database 사용자를 위해 SQL 문을
단순화
크게 2가지로 구분된다. private, public
private - 특정사용자에게만 사용하도록 만드는경우
public - 모든사용자에게 오픈할경우
-------------
데이터 베이스 설계(데이터 모델링, Data Modeling)
데이터 모댈링 절차
개념적(ConCeptual) -> 논리적(Logical) -> 물리적(Physical)
모델링의 정의
현실세계의 데이터들을 도형이나 기호를 이용하여 단순하고, 이해하기 쉽게 표현(모형화) 하는것
엔티티(Entity)와 엔티티간의 관계(Relation), 엔티티가 가지고 속성을 중심으로 체계적이고, 이해하기 쉽게 표현하는 것
데이터베이스 설계에서 가장 많이 사용되는 데이터 모델은 E - R 모델(엔티티-관계 모델) 이다.
표기법위주로 수업할 예정
개념적 데이터 모델링
기업의 전사 정보체계를 이해하기 쉽게 표현한 상위수준의 모델링
엔티티와 엔티티간의 관계 파악하여 주요 업무 규칙 정의
논리적 데이터 모델링의 기초로 사용
논리적 데이터 모델링
개념적 데이터 모델로부터 개발 업무 영역의 업무 데이터와 규칙을 상세히 표현
정규화
모든 업무 규칙을 완전하고 정확하게 표현
DBMS종류, 성능, 물리적인 세부사항은 고려하지않음
물리적 데이터 모델링
설계와 성능을 고려한 조정
특정 DBMS에 적합한 성능 고려
---------------------
개념적 데이터 모델링의 핵심은 어떤 엔티티가 있는지 추출하는것이다.
개체 - 관계 모델(E-RModel : Entity - Relationship Model) 모델 소개
E-R 모델 구성요소
Entity(개체) - 영속적으로 정보화해야 할 대상
Attribute(속성) - 엔티티 내에서 관리해야 할 정보들의 항목
Relation(관계) - 엔티티 사이의 연관성
논리적 데이터 모델링의 핵심은 개발업무 분석 및 고객 요구사항 분석이다.
설계 대상이 되는 업무에 대한 이해로부터 시작된다.
엔티티 - 기업에서 지속적인 관심을 가지고 영속적으로 정보화 해야 할 대상, 여러개의 속성으로 구성된 명사
엔티티 관계에는 관계명, 선택사항(Optionality), 관계형태(Degree) - 다중성을 표시한다.
다 - 다 를 1 - 다 로 바꾼다 (다 : 다중, 여럿)
엔티티에 일반 속성의 정의
의미가 명확하고 내용을 함축성 있게
너무 길지 않게
필요 시 표준 약어를 제정
가능한 복합명사(일자->판매일자)
단 하나의(특정) 엔티티에만 속하도록
속성을 크게 3가지로 나눈다
1. 일반 : 보통의 속성
2. 설계 : 설계상에 필요한 속성
3. 유도 : 위의 속성에서 유도되는 속성
유도속성은 설계단계에서 엔티티에서 빼야한다.
논리적 모델링 단계에서는 빼는대 물리적 모델링에서는 속성을 부여할 수 도있다.
논리적 데이터 모델링의 가장큰 목적은 엔티티와 엔티티사이의 관계제약사항을 정확하게 표현하는 것이다. 이러한 목적을 달성하기 위해 적절한 엔티티를 식별해내야하는대 이러한 엔티티를 식별하는 데 사용되는 기법을 정규화(Normalization)이라 한다.
정규화 정의 : 기업의 정보화 요구에 대하여 적절한 속성을 갖는 엔티티를 생성(식별)하는 기법으로 속성들간의 관계를 통해 속성의 중복성을 최소화하고 정보의 일관성을 보장하기 위한 개념으로 모든 정규화 과정은 기본키와 일반속성 사이의 의존성을 기반으로 엔티티를 식별하는 작업을 수행한다.
정규화는 검증으로서의 의미가 크다.