목록어플리케이션개발/DB (16)
코딩공작소
정규화이론의 필요성 - DB 디자인 결과의 평가 - relation schemas의 좋음을 토론할 수 있는 레벨 : Logical or conceptual level, Implementation or physical level Relation schemas를 위한 정보 디자인 가이드라인Imparting clear semantics to attributeRedundant information and anomaliesNULL valuesGeneration of spurious tuples 1.Imparting clear semanics to attribute - 관계의 의미들 : 하나의 튜플에 있는 속성값의 해석으로부터의 의미있는 결과들 - 관계의 의미들을 더 설명하기 쉽다 : 더 나은 스키마 디자인을 가리..
- DB app :Host 언어 : 자바, C/C++/C#, COBOL, ... :SQL - SQL 표준 각각 DBMS는 표준으로부터 다양한 형태의 언어를 가지고 있다. - Interactive interface : SQL명령어는 바로 DBMS에 type되고 결과가 스크린에 출력된다. - App programs or DB app : web interface를 이용한다. - Embedding DB commands : Host language 내부에 DB 문장을 내포시키는 방법. : 프리 컴파일러와 Preprocessor가 코드를 스캔한다. SQL command --> host languages(embedded) : 컴파일 시, 구문오류와 스키마 위반 여부를 동시에 검사 할 수 있다. : 질의 변경 시, 프..
- Relational algebra : 절차적인 쿼리 언어를 위한 형식 언어 : 관계 모델을 위한 작동의 기본 셋 - Relational algebra expression : Relational algebra 작동의 순서 - Relational calculus : 비절자 쿼리 언어를 위한 형식 언어 : relational 쿼리를 명시화 하기위한 하이 레벨 선언 언어 ***SQL명령어를 Query 로 Algebra로 서로 변환가능해야함. ****튜플들의 속성의 개수 : degree ==> deg(R)튜플들의 개수 : Cardinality ==> |R| or |r| [1] SELECT
**DML(Data manipulation Language) : instance에 관련된 조작을 하는 언어. app 개발자나 interactive users에 의해 이용된다. insert : 한개 이상의 튜플을 릴레이션에 추가 (튜플 단위)delete : 릴레이션에서 튜플을 삭제 (튜플 단위)update : 한개이상의 튜플의 속성을 바꾸는 것 ( 튜플의 특정 속성 ) Not null인 속성들을 몇 개의 속성만 추가할 때 사용 여러개의 튜플을 추가하려고 할때는 임시테이블을 만들어서 추가하기도 한다.이때, 만약 원래의 테이블의 인스턴스가 바뀌면 임시테이블의 정보에는 반영이 되지 않는다.반영을 하기위해서는 view를 만들어야한다. where절을 이용해 특정 조건의 튜플을 삭제할 수 있다. **Drop tabl..
SQL 언어 - 관계 DB관리를 위한 표준 DB언어 - Structured Query Language Data Definition Language(DDL) - 스키마를 정의하는 언어 - 스키마, 테이블 ,무결성 제약조건, 뷰 , 인덱스의 생성 , 드랍, alter - DBA에 의해 사용되며 악용을 방지한다. Data Manipulaiton Language(DML) - 테이블의 인스턴스를 조작한다. - 삽입, 업데이트, 삭제, 쿼리 인스턴스 - 앱 개발자 혹은 인터렉티브 유저에 의해 사용된다. Data Control Language(DCL) - 접근 권리를 조절하고 백업과 복구 기능 - DBA에 의해 사용된다.Tuple ~ recordAttribute ~ field하드웨어에서는 relation file N..
Multi-level indexs - 저장해야할 정보이 양이 많을 때 , 인덱스의 인덱스를 만들어 멀티레벨로 파일을 저장하는것 빈칸이 존재 하지않는다.탐색이 매우 빠르지만 , 삽입 삭제 업데이트 연산은 매우 비효율적이다.일종의 트리구조이다. Pointer , Key를 갖는다.q개의 p와 q-1개의 k를 갖는다.key는 정렬되어 있다. tree로 변환.insert시 원소의 갯수가 2개 이상이 되면 split과정을 통해 bottom-up이 된다.기본구조는 계층구조이다. Dynamic multi-level indexes using B-tress and B+-trees많은 멀티레벨 인덱스는 비트리와 비+트리를 이용한다 . 그 이유는 삽입,삭제 문제때문이다.비트리는 각 데이터 레코드에 포인터가 각각 전부 존재한다..
Heap or a pile file 이라고 불린다.새로운 레코드들이 파일의 가장 마지막으로 삽입된다.파일 레코드들을 통한 Linear Search 레코드들을 검색하기 위해 필수적이다. 이것은 평균적으로 파일 블록의 절반을 읽거나 검색하기 때문에, 매우 expensive하다.레코드(~=튜플) 삽입은 매우 효율적이다.특정 필드의 순서로 레코드를 읽으려면 파일 레코드를 정렬해야 한다. Sequential file이라고 불린다.파일 레코드들은 정렬된 필드들의 값에 의해 정렬상태로 유지된다.삽입이 expensive하다 . 레코드들은 맞는 순서에 의해 삽입되어야 한다. 일반적으로, 새로운 레코드의 삽입의 효율을 높이기 위해 별도의 비정렬 overflow(또는 트랜잭션)파일을 보관하는 것이 일반적이다. 이것은 주기적..
하드디크스(디스크)>높은 저장 용량과 낮은 비용의 선호되는 두번째 저장장치데이터는 자기장 디스크 표면에 자기적 영역으로써 저장된다.Disk pack은 rotating spindle에 연결된 몇 개의 자기적 디스크를 포함한다.디스크들은 동심의 원 트랙으로 각 디스크표면에서 나누어진다.Track은 작은 Blocks 또는 Sectors로 나누어진다. 많은 양의 정보를 포함할 수 있기 때문!Track이 Sectors로 변환되는 것은 디크스 표면에 hard-coded하는 것이며 변경할 수 없다. Sector는 각도로 정보를 자른다.Block은 길이로 정보를 자른다. block size B는 각 시스템마다 고정되어 있다. 범위는 B=512 - B=4096 bytes. 전체 블럭들은 디스크와 메인 메모리사이에서 프로..
Conceptual schema design을 ER model로 변환하기 위해서는 7 단계의 알고리즘이 필요. #Target relational DM 관계들의 집합으로서의 데이터들을 표현 값의 Table(Relation)Row(Tuple) : 관련된 데이터 값들의 집합, 현실세계의 앤티티 또는 관계와 상응하는 사실, 튜플들은 원자 값 혹은 널값만을 갖는다.Flat Relational model : Composite ,multivalued 속성이 허락되지 않는 가장 일반적인 형태Multivalued attribute : 반드시 분리된 관계들에 의해 대표되어야 한다.Composite attribute : 오직 기초 관계모델에 안에 간단한 구성요소 속성들로 대표되어야 한다. ER to relation mapp..
※관계형 데이터 모델이란? - 관계의 집합으로서의 데이터를 대표하는것 --> AttributeDomain D : atomic valid value들의 집합Atomic : 각각의 원자적인 나누어질수 없는 valueSpecifying a domain : 각각의 도메인을 위해 명시된 데이터 타입( ex, int , String ...) Relation schema R - R(A1,A2,.....)으로 명시됨 - 관계 이름 R과 특성의 리스트(A1,A2,....)로 만들어져 있다. Attribute Ai - 관계 스키마 R안에 있는 어떤 도메인 D에 의해 행해지는 역할의 이름 Degree of relation - 그것의 관계 스키마의 특성의 개수. (n개의 특성을 가지고 있는 것) DB는 relation들의 집..