본문 바로가기
728x90

전체 글240

[Database] 02 - 3 릴레이션의 키 릴레이션의 키 각 투플을 고유하게 식별할 수 있는 하나 이상의 애트리뷰트들의 모임 수퍼 키(superkey), 후보 키(candidate key), 기본 키(primary key), 대체 키(alternate key), 외래 키(foreign key) 수퍼 키 (superkey) 한 릴레이션 내의 특정 투플을 고유하게 식별하는 하나의 애트리뷰트 또는 애트리뷰트들의 집합 예: 신용카드 회사의 고객 릴레이션에서 (신용카드번호, 주소) 또는 (주민등록번호, 이름) 또는 (주민등록번호) 투플들을 고유하게 식별하는데 꼭 필요하지 않은 애트리뷰트들을 포함할 수 있음 필요하지 않은 애트리뷰트를 포함할 수 있음 후보 키 (candidate key) 각 투플을 고유하게 식별하는 최소한의 애트리뷰트들의 모임 (예: (신용.. 2021. 9. 14.
[Database] 02 - 2 릴레이션의 특성 릴레이션 투플들의 집합(중복허용x, 순서없음) *투플들은 서로 다르다. *투플들 간에 값이 다른 애트리뷰트들의 집합이 있다.(키, 최소 하나는 존재, 여러 개가 있을 수 있다.) 릴레이션의 특성 각 릴레이션은 오직 하나의 레코드 타입만 포함 한 애트리뷰트 내의 값들은 모두 같은 유형(같은 도메인에 속함) 애트리뷰트들의 순서는 중요하지 않음 동일한 투플이 두 개 이상 존재하지 않음 (키가 존재함, 투플들의 집합이기 때문) 한 투플의 각 애트리뷰트는 원자값을 가짐 각 애트리뷰트의 이름은 한 릴레이션 내에서만 고유 투플들의 순서는 중요하지 않음 2021. 9. 14.
[Database] 02 - 1 관계 데이터 모델과 제약조건 관계 데이터 모델은 지금까지 제안된 데이터 모델들 중에서 가장 개념이 단순한 데이터 모델의 하나 IBM 연구소의 E.F. Codd가 1970년에 관계 데이터 모델을 제안함 관계 데이터 모델을 최초로 구현한 가장 중요한 관계 DBMS 시제품은 1970년 대에 IBM 연구소에서 개발된 System R 1980년대 후반부터 여러 가지 데이터 모델들이 새로 등장했지만 관계 DBMS는 여전히 가장 널리 사용되는 DBMS 관계 데이터 모델이 큰 성공을 거둔 요인 바탕이 되는 데이터 구조로서 간단한 테이블(릴레이션)을 사용 중첩된 복잡한 구조가 없음(이해하기 쉽고 사용하기 쉽다) 집합 위주로 데이터를 처리(수학의 기초를 알고 있는 사람이라면 누구나 이해가능) 다른 데이터 모델에 비해 이론이 잘 정립되었음(생각하지 못.. 2021. 9. 14.
[알고리즘 분석] 01 - 3 차수(order) 대표적인 복잡도 함수 Θ(lg n) Θ(n) : 1차(linear) Θ(n lg n) Θ(n 2 ) : 2차(quadratic) Θ(n 3 ) : 3차(cubic) Θ(2n ) : 지수(exponential) Θ(n!) Θ(n n) 최고차 항이 최종적으로 전체 영향이 가장 크다. • Eventually 10,000보다 큰 n에 대해서 0.01n^2 > 100n. 시간복잡도별 실행시간 비교 Asymptotic(점근적) Behavior f(n)의 asymptotic behavior는 n이 큰 수가 될 때의 함수 f(n)이 갖는 특성 (예) f(n) = 1/n 복잡도 함수 표기법 O( ) - big oh: asymptotic upper bound o( ) - small oh: upper bound that i.. 2021. 9. 14.
[알고리즘 분석] 01 - 2 알고리즘의 분석(analysis) 알고리즘 분석 공간복잡도(space(memory) complexity) 분석 입력크기에 따라서 작업공간 (메모리)이 얼마나 필요한 지 결정 하는 절차 시간복잡도(time complexity) 분석 입력크기에 따라서 단위연산이 몇 번 수행되는지 결정하는 절차 알고리즘이 수행되는 기계에 따라 문제를 해결하는 시간이 달라 짐. 우리의 관심도 시간복잡도 > 공간복잡도 시간복잡도분석의 기준 기계에 독립적인, 문제 본연의 복잡도를 표현하여야 함. 표현 척도 - 단위연산(basic operation) 비교문(comparison), 지정문(assignment) 등 - 입력크기(input size) 배열의 크기, 리스트의 길이, 행렬에서 행과 열의 크기, 트리에 서 마디와 이음선의 수 분석 방법의 종류 Every-cas.. 2021. 9. 14.
[Database] 01 - 7 데이터베이스 시스템 아키텍처 DBMS는 여러 모듈이 협력하여 작동하는 소프트웨어입니다. 데이터베이스 관리자가 데이터베이스 정의어를 사용하여 데이터베이스를 생성하면 데이터 정의어 컴파일러가 이를 컴파일하여 시스템 카탈로그에 정보를 저장합니다. 최종 사용자 또는 응용프로그램이 기작성 트랜잭션 또는 콘솔을 통해 데이터 조작어로 작성된 질의를 입력하면 징의 처리기는 이를 파싱하여 질의를 처리합니다. 이때 데이터베이스와 시스템 카탈로그의 접근은 런타임 데이터베이스 관리기를 통해 이루어집니다. 한편, 동시성 제어와 회복을 위해 트랜잭션 관리기는 런타임 데이터베이스 관리기와 긴밀하게 협력합니다. 데이터 정의어 컴파일러(DDL compiler) 모듈 데이터 정의어를 사용하여 테이블 생성을 요청하면 테이블을 파일 형태로 데이터베이스에 만들고, 이 .. 2021. 9. 9.
[Database] 01 - 6 ANSI/SPARC 아키텍처와 데이터 독립성 ANSI(표준화 기구)/SPARC 아키텍처 - 현재의 대부분의 상용 DBMS 구현에서 사용되는 일반적인 아키텍처는 1978년에 제안된 ANSI/SPARC 아키텍처 - ANSI/SPARC 아키텍처의 3단계는 물리적, 개념적, 외부 단계로 이루어짐 외부 단계(external level): 각 사용자의 뷰 개념 단계(conceptual level): 사용자 공동체의 뷰 내부 단계(internal level): 물리적 또는 저장 뷰 *아래에서 위로 갈수록 추상화 정도가 높아짐 외부 단계 데이터베이스의 각 사용자가 갖는 뷰 여러 부류의 사용자를 위해 동일한 개념 단계로부터 다수의 서로 다른 뷰가 제공될 수 있음 일반적으로, 최종 사용자와 응용 프로그래머들은 데이터베이스의 일부분에만 관심을 가짐 개념 단계 조직체의.. 2021. 9. 9.
[Database] 01 - 5 DBMS 사용자 트랜젝션 - 하나의 비절차언어를 실행시키는 것 데이터베이스 관리자(DBA: Database Administrator) - 데이터베이스 관리자는 조직의 여러 부분의 상이한 요구를 만족시키기 위해서 일관성 있는 데이터베이스 스키마를 생성하고 유지하는 사람(팀) - 데이터베이스 관리자의 역할 데이터베이스 스키마의 생성과 변경 무결성 제약조건을 명시 사용자의 권한을 허용하거나 취소하고, 사용자의 역할을 관리 저장 구조와 접근 방법(물리적 스키마) 정의 백업과 회복 표준화 시행 응용 프로그래머 데이터베이스 위에서 특정 응용(예, 고객 관리, 인사 관리, 재고 관리 등)이나 인터페이스를 구현하는 사람 고급 프로그래밍 언어인 C, 코볼, 자바 등으로 응용 프로그램을 개발하면서 데이터베이스를 접근하는 부분은 내포된 데.. 2021. 9. 9.
[Database] 01 - 4 DBMS 언어 언어의 종류에는 절차언어와 비절차언어가 있는데 SQL은 비절차언어이다. 데이터 정의어(DDL: Data Definition Language) 사용자는 데이터 정의어를 사용하여 데이터베이스 스키마를 정의 데이터 정의어로 명시된 문장이 입력되면 DBMS는 사용자가 정의한 스키마에 대한 명세를 시스템 카탈로그 또는 데이터 사전에 저장 데이터 정의어의 기본적인 기능 데이터 모델에서 지원하는 데이터 구조를 생성 예, SQL에서 CREATE TABLE 데이터 구조의 변경 예, SQL에서 ALTER TABLE 데이터 구조의 삭제 예, SQL에서 DROP TABLE 데이터 접근을 위해 특정 애트리뷰트 위에 인덱스를 정의 예, SQL에서 CREATE INDEX 데이터 조작어(DML: Data Manipulation La.. 2021. 9. 7.
728x90