반응형
Notice
Recent Posts
Recent Comments
Link
지구정복
[SQLD] 12. 관계형 데이터베이스 개요 본문
728x90
반응형
1. 데이터베이스
- 넒은 의미: 일상적인 정보를 모아 놓은 것 자체
- 일반적 의미: 특정 기업이나 조직 또는 개인이 필요에 의해 데이터를 일정한 형태로 저장해 놓은 것
- 예
- 학교: 학생관리를 목적으로 학생 개개인의 정보 저장
- 기업: 직원관리를 목적으로 직원의 이름, 부서, 월급 정보 저장
- DBMS: 효율적인 데이터의 관리뿐 아니라 데이터의 손상을 피하고 필요시 데이터를 복구하기 위한 소프트웨어(Oracle, MySQL, SQL Server...)
가. 데이터베이스의 발전
- 1960년대: 플로우차트 중심의 개발방법, 파일 구조의 데이터 저장, 관리
- 1970년대: 데이터베이스 관리 기법이 처음 태동되던 시기, 계층형 데이터베이스, 망형 데이터베이스 상용화
- 1980년대: 관계형 데이터베이스 상용화(Oracle, Sybase, DB2)
- 1990년대: 보다 향상된 기능으로 많은 관계형 데이터베이스들이 사용, 객체 관계형 데이터베이스로 발전
나. 관계형 데이터베이스
- 1970년 E.F.Codd 박사에 의해 처음 소개
- IBM의 SQL 개발 단계를 거쳐, Oracle을 선발로 여러 상용화된 제품 소개(주력 데이터베이스로 발전)
- 관계형 데이터베이스의 장점
- 기존 파일 시스템의 동시성 제한, 데이터 불일치성 문제 해결
- 정규화를 통한 합리적인 테이블 모델링을 통해 ANOMALY 현상을 제거하고 데이터 중복을 피한다.
- 동시성 관리, 병행 제어를 통해 다수의 사용자가 동시에 데이터를 공유 및 조작할 수 있도록 한다.
- 메타 데이터를 총괄 관리하여 데이터를 체계화하고 데이터 표준화를 통해 데이터 품질을 확보한다.
- 인증된 사용자만이 참조할 수 있도록 보안 기능을 제공한다.
- 제약조건을 사용하여 데이터 무결성을 보장한다.
- 데이터의 수정이 제대로 반영될 수 있도록 보장해주는 기능과 시스템 다운/재해의 상황에서 데이터를 복구하는 기능을 제공한다.
2. SQL(Structured Query language)
- 관계형 데이터베이스에서 데이터 정의, 데이터 조작, 데이터 제어를 하기 위해 사용하는 언어
- SQL의 최초 이름은 SEQUEL이지만 표준은 SQL이므로 '에스큐엘'로 읽는 것을 권고
- 1986년부터 ANSI/ISO를 통해 표준화되어 SQL에 대한 지식은 다른 데이터베이스를 사용하더라도 상당 부분 비슷
- 관계형 데이터베이스는 수학의 집합 논리에 입각한 것이므로 SQL도 데이터를 집합으로써 취급
3. TABLE
가. 예제
- K-리그 1차 자료 정리
- 선수별 정리
- 전체적으로 여러 명의 정보나 비교가 어렵다.
- K-리그 2차 자료 정리
- 기준(컬럼)을 정해서 비교
- 기준(컬럼)을 정해서 비교
나. 성격
- 관계형 데이터베이스의 기본 단위
- 어느 특정한 주제와 목적으로 만들어지는 일종의 집합
- 테이블은 반드시 하나 이상의 컬럼을 가져야 한다.
- 컬럼과 행의 2차원 구조로 나타내며 그 하나의 공간을 필드라고 한다.
다. 테이블 관계 용어
- 정규화: 테이블을 분할하여 데이터의 불필요한 중복을 줄이는 것
- 기본키: 각 행을 한 가지 의미로 특정할 수 있는 한 개 이상의 컬럼
- 외부키: 다른 테이블의 기본 키로 사용되면서 테이블과의 관계를 연결하는 역할을 하는 컬럼
4. ERD(Entity Relationship Diagram)
가. 성격
- 엔티티간의 관계의 의미를 직관적으로 표현할 수 있는 좋은 수단
- 엔티티, 관계, 속성 3가지로 구성(현실 세계의 데이터를 모두 표현 가능)
나. 예제
- K-리그 테이블간의 양방향 관계 설명
- 하나의 팀은 여러 명의 선수를 포함할 수 있다.
- 한 명의 선수는 하나의 팀에 꼭 속한다.
- 하나의 팀은 하나의 전용 구장을 꼭 가진다.
- 하나의 운동장은 하나의 홈팀을 가질 수 있다.
- 하나의 운동장은 여러 게임의 스케줄을 가질 수 있다.
- 하나의 스케줄은 하나의 운동장에 꼭 배정된다.
- IE 표기법의 ERD
- Baker 표기법의 ERD
[출처]
wiki.gurubee.net/pages/viewpage.action?pageId=27427190
728x90
반응형
'자격증 정복 > SQLD' 카테고리의 다른 글
[SQLD] 14. DML (Data Manipulation Language) (0) | 2020.11.09 |
---|---|
[SQLD] 13. DDL (Data Defintion Language) (0) | 2020.11.09 |
[SQLD] 11. 분산 데이터베이스와 성능 (0) | 2020.11.09 |
[SQLD] 10. 데이터베이스 구조와 성능 (0) | 2020.11.09 |
[SQLD] 9. 대량 데이터에 따른 성능 (0) | 2020.11.09 |
Comments