개요
1. 관계형 데이터베이스 역사
1.1 역사
- 1960년대 : Flat File
- 1970년대 : Network DBMS, Hierarchical DB
- 1980년대 : 관계형 DBMS
- 1990년대 : 관계형 DBMS, 객체 관계형 DBMS
- 2000년대 : 관계형/객체관계형/객체지향 DBMS
1.2 데이터베이스 시스템에 대한 관계형 모델 제안
- E.F.Codd 박사(1970년 6월)
- “A Relational Model of Data for Large Shared Data Banks” 라는 논문
- RDBMS(Relational Database Management System)의 시초
1.3 관계형 모델의 구성요소
- 개체(object) 혹은 관계(relation)의 집합
- 관계(relation)에 가해지는 연산자의 집합
- 정확성과 일관성을 위한 데이터 무결
2. 관계형 데이터베이스 정의
2.1 정의
- 관계형 데이터베이스는 관계들의 모음 또는 이차원 테이블의 모음이다.
2.2 파일 시스템과 데이터베이스 시스템의 차이점
- 데이터 무결성 제공
- 데이터 공유 가능
- 데이터 정확성과 일관성 제공
- 관계 설정을 통한 중복 제거
- 표준화가 가능
3. 관계형 데이터베이스 특징
- SQL을 이용한 데이터 조작
- 데이터 무결성 제공
- 트랜잭션 제공
- ACID 규정 준수 : 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질을 가리키는 용어
원자성(Atomicity) | 일관성(Consistency) | 독립성(Isolation) | 지속성(Durability) |
- 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력이다. - 예를 들어, 자금 이체는 성공할 수도 실패할 수도 있지만 보내는 쪽에서 돈을 빼 오는 작업만 성공하고 받는 쪽에 돈을 넣는 작업을 실패해서는 안된다. - 원자성은 이와 같이 중간 단계까지 실행되고 실패하는 일이 없도록 하는 것이다. |
- 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것을 의미한다. - 무결성 제약이 모든 계좌는 잔고가 있어야 한다면 이를 위반하는 트랜잭션은 중단된다. |
- 트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것 - 트랜잭션 밖에 있는 어떤 연산도 중간 단계의 데이터를 볼 수 없음을 의미한다. - 은행 관리자는 이체 작업을 하는 도중에 쿼리를 실행하더라도 특정 계좌간 이체하는 양 쪽을 볼 수 없다. |
- 성공적으로 수행된 트랜잭션은 영원히 반영되어야 함을 의미한다. - 시스템 문제, DB 일관성 체크 등을 하더라도 유지되어야 함을 의미한다. - 전형적으로 모든 트랜잭션은 로그로 남고 시스템 장애 발생 전 상태로 되돌릴 수 있다. - 트랜잭션은 로그에 모든 것이 저장된 후에만 commit 상태로 간주될 수 있다. |
4. 엔티티(Entity) 관계 모델
4.1 Employees 테이블과 Departments 테이블의 관계 도표 생성
=> 부서에는 0명 이상의 사원을 갖고 있다.
=> 사원은 부서를 0개 혹은 1개를 가진다.
4.2 시나리오(카디널리티)
4.3 ER 모델링의 장점
- 조직에 대한 정보를 정확하고 자세하게 문서화 => 품질보증에 사용
- 정보 요구사항의 범위를 명확히 기술
- 데이터베이스 설계를 쉽게 이해할 수 있는 표본 제공
- 복수 응용프로그램의 통합화를 위한 효과적 프레임워크 제공
5. 관계형 데이터베이스의 기본 구조
일반적 개념 | 모델링 | DB객체 |
데이터 집합, Relation, 관계집합(Relation Set) |
개체집합(Entity Set) | 테이블(table) |
관계집합 중 어떤 행(row) | 튜플(tuple), 엔티티(Entity) | 레코드(record) |
관계집합 중 어떤 열(column) | 속성(attribute) | 필드(field) |
6. 테이블 관련 용어
행(row) | 테이블에서 각 행은 중복되지 않으며 기본키에 의해 식별된다. 행의 순서는 무의미하다. |
열(column) | 한 종류의 데이터를 나타내며 한 열의 데이터는 같은 타입을 갖는다. |
기본키(primary key) | 기본키는 유일하며 null값을 가질 수 없다. 식별자라고 한다. |
외래키(foreign key) | 다른 테이블의 기본키 혹은 고유키를 참조하여 사용한다. |
필드(field) | 행과 열이 교차하는 곳을 말하고, 하나의 값만 가진다. |
null | 필드는 그 안에 값을 안 가질 수 있다. |
오라클 DBMS
1. 실습 환경 구축
- Oracle Database Express Edition 다운로드
Oracle Database Express Edition (XE) Downloads
Oracle Database Express Edition (XE) Downloads
Support Oracle Database Express Edition (XE) is a community supported edition of the Oracle Database family. Please go to the Oracle Database XE Community Support Forum for help, feedback, and enhancement requests. Note: Oracle Support Services only provid
www.oracle.com
- SQLDeveloper 다운로드
Oracle SQL Developer Downloads
Oracle SQL Developer Downloads
This archive. will work on a 32 or 64 bit Windows OS. The bit level of the JDK you install will determine if it runs as a 32 or 64 bit application. This download does not include the required Oracle Java JDK. You will need to install it if it's not already
www.oracle.com
2. 계정 초기화 하기
SQL> conn sys /as sysdba
Enter password:
Connected.
SQL> alter session set "_ORACLE_SCRIPT"=true;
Session altered.
SQL> @?/demo/schema/human_resources/hr_main.sql
specify password for HR as parameter 1:
1의 값을 입력하십시오: hr
specify default tablespeace for HR as parameter 2:
2의 값을 입력하십시오: users
specify temporary tablespace for HR as parameter 3:
3의 값을 입력하십시오: temp
specify log path as parameter 4:
4의 값을 입력하십시오: $ORACLE_HOME/demo/schema/log/
3. 쿼리 실행
4. sample Table
'IT > SQL' 카테고리의 다른 글
[SQL] 5. 분석 함수 (0) | 2023.05.11 |
---|---|
[SQL] 4. 그룹 함수를 이용한 데이터 집계 (0) | 2023.05.10 |
[SQL] 3. 함수 - 2 (0) | 2023.05.09 |
[SQL] 3. 함수 - 1 (0) | 2023.05.09 |
[SQL] 2. SELECT문 (0) | 2023.05.08 |