일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 백준 1141 로직
- 백준 예산 자바
- SQLD
- 백준 2293 자바
- 백준 1141
- SQLD 내용
- 백준 동전1 자바
- 너비우선탐색
- SQLD 요약
- 백준 2512 자바
- 백준 접두사 자바
- SQLD 책
- SQLD SQL 활용
- 자바 이분 탐색 예제
- BFS
- SQLD 정리
- 백준 1141 접두사
- 백준 2293 동전 1
- 자바 예제
- SQL 기본 및 활용
- 자바 문자열 예제
- 백준
- SQLD SQL 최적화 기본 원리
- 백준 접두사 로직
- 백준 부분합 로직
- 자바 DP 예제
- 오라클 예제
- 알고리즘
- 백준 예산 코드
- SQLD 내용 정리
- Today
- Total
혼자 공부하는 공간
[SQL기본 및 활용] 2020년 SQLD 내용 정리 :: SQL 기본 #1 본문
<목차>
<< 관계형 데이터베이스 개요 >>
1. 데이터베이스
-
넓은 의미
* DB는 일상적인 정보들을 모아 놓은 것 자체를 의미 -
일반적 의미
* 특정 기업이나 조직 또는 개인이 필요에 의해 데이터를 일정한 형태로 저장해 놓은 것을 의미
-
예시
* 학교 : 학생 관리를 목적으로 학생 개개인의 정보를 모아둠
* 기업 : 직원들을 관리하기 위해 직원들의 이름, 부서, 월급 등의 정보를 모아둠
---> 위의 정보들을 엑셀과 같은 SW를 사용해서 정리하고 저장할 수 있지만, 데이터의 양이 점점 많아지고 여러 사람들이 동시에 엑셀을 사용해 데이터를 관리하게 되면 중요한 데이터에 문제가 생기는 경우가 발생할 수 있음
---> 많은 사용자들은 보다 효율적인 데이터 관리 및 데이터의 손실에 대해 복구할 수 있는 강력한 기능의 SW가 필요하다. 이러한 요구를 만족시켜주는 시스템을 DBMS(DataBase Management System)라 함
1-1. 데이터베이스의 발전
-
1960년대
* 플로우차트 중심의 개발 방법 사용
* 파일 구조를 통해 데이터 저장/관리
-
1970년대
* DB관리 기법이 처음 태동되던 시기
* 계층형(Hierarchical) DB, 망형(Network) DB 상용화
-
1980년대
* 현재 대부분의 기업에서 사용되고 있는 관계형(Relational) DB 상용화
* Oracle, Sybase, DB2 제품 사용
-
1990년대
* Oracle, Sybase, Informix, DB2, SQL Server 외 많은 제품들이 보다 향상된 기능으로 정보 시스템의 핵심 솔루션으로 자리잡음
* 객체 지향 정보를 지원하기 위해 객체 관계형 DB로 발전
1-2. 관계형 데이터베이스
-
등장
* 1970년도 영국의 수학자 E.F. Codd 박사의 논문에서 처음으로 소개
* IBM의 SQL 개발 단계를 거치고 Oracle을 선발로 여러 회사에서 상용화된 제품을 개발
* 이후 파일 시스템/계층형/망형 DB 대부분을 대체하면서 주력 DB로 자리잡음
-
중요성
* 파일 시스템에서 분산된 데이터 간 정합성 유지에 과다한 노력이 필요 (한 파일을 여러 개로 복사하고 각각 다른 부분을 수정한 뒤 복사했던 모든 파일의 수정 사항을 합치는 데에 필요한 노력이라고 생각하면 됨)
* 관계형 DB에서는 많은 사용자들이 동시에 데이터를 공유 및 조작할 수 있는 기능을 제공 (정규화를 통한 이상 현상 제거, 데이터 중복 제거, 동시성 관리, 병행 제어 때문에)
* 메타 데이터를 총괄 관리할 수 있기 때문에 데이터의 성격, 속성, 표현 방법 등을 체계화하고 데이터 표준화를 통해 데이터 품질 확보
* DBMS는 인증된 사용자만이 참조할 수 있도록 보안 기능을 제공
* 여러 제약조건을 이용해 사용자가 실수로 조건에 위배되는 데이터를 생성하는 것을 방지할 수 있다. (무결성 보장)
* 갑작스런 장애로부터 데이터가 제대로 반영될 수 있도록 보장
* 데이터 회복 및 복구 기능 제공
2. SQL (Structured Query Language)
-
정의
* 관계형 DB에서 데이터 정의/조작/제어를 하기 위해 사용하는 언어 -
특징
* 다른 개발 언어에 비해 기초 단계 학습은 쉬운 편
(시스템에 미치는 영향이 크므로 고급 SQL, SQL 튜닝은 굉장히 중요함)
* 구체적인 용어는 다르더라도 대부분의 관계형 DB는 ANSI/ISO 표준을 따르므로 상당 부분 문법에 비슷한 부분이 많음
(벤더끼리의 차별화를 위해 추가 기능이나 내장 함수 등 독자적인 개발을 진행)
-
목적
* 정확한 데이터를 출력하는 것
* SQL 튜닝의 경우 가장 효과적인 SQL 작성이 목표(응답시간, 자원 활용 최소화 고려)
-
언어의 분류
3. TABLE
-
정의
* 관계형 DB에서 데이터가 저장되는 기본 단위.
* 모든 자료는 테이블에 등록되고, 테이블로부터 원하는 자료를 추출할 수 있음.
* 행(row) + 칼럼(column)으로 이루어지며 2차원 구조로 표현 -
특징
* 반드시 하나 이상의 칼럼을 가짐.
(칼럼 : 선수, 팀, 팀연고지, 포지션, 등번호, 생년원일, ....과 같은 더 이상 나눌 수 없는 속성 ; 아래 표 참고)
-
구조
3-1. 정규화
-
개요
* 데이터를 하나의 테이블에 저장하지 않음.
* <선수> 테이블과 <구단> 테이블로 나누어져 있음.
* 분할된 테이블은 칼럼의 값에 의해 연결됨. (팀 코드) -
정의
* 테이블을 분할하여 데이터의 불필요한 중복을 줄여 데이터의 정합성 확보 및 이상 현상을 제거하는 데이터 모델링에서의 중요한 프로세스
-
용어
4. ERD (Entity Relationship Diagram)
-
개요
* 각 테이블은 다른 테이블과 어떤 의미의 연관성이나 관계를 가질 수 있다. 이와 같은 관계의 의미를 직관적으로 표현할 수 있는 좋은 수단 -
구성 요소
* Entity (엔티티) : 팀, 선수 ---> 테이블과 연결
* Relationship (관계) : 소속 ---> 외래키/기본키로 연결
* Attribute (속성) : 테이블의 특징 ---> 칼럼으로 연결 -
예시
-
관계 설명
-
하나의 팀은 여러 선수를 포함 + 한 명의 선수는 하나의 팀에 꼭 속함
* <축구선수> 테이블에 축구팀의 PK인 TEAM_ID가 외래키(FK)로 존재하고 NOT NULL의 제약조건이 걸려있다면 "꼭" 이라는 조건이 붙음 -
하나의 팀은 하나의 경기장을 꼭 가짐 + 하나의 경기장은 하나의 팀을 가질 수 있음
* <축구팀> 테이블에 경기장의 PK인 STADIUM_ID가 외래키(FK)로 존재하고 NOT NULL의 제약조건이 걸려있다면 "꼭" 이라는 조건이 붙음 -
하나의 경기장은 여러 일정을 가질 수 있음 + 하나의 일정은 하나의 운동장에 꼭 배정됨
-
출처
질문은 댓글로 남겨주시면 되겠습니다. 감사합니다.
'자격증 > SQLD' 카테고리의 다른 글
[SQL기본 및 활용] 2020년 SQLD 내용 정리 :: SQL 기본 #6 (0) | 2020.08.21 |
---|---|
[SQL기본 및 활용] 2020년 SQLD 내용 정리 :: SQL 기본 #5 (0) | 2020.08.20 |
[SQL기본 및 활용] 2020년 SQLD 내용 정리 :: SQL 기본 #4 (0) | 2020.08.16 |
[SQL기본 및 활용] 2020년 SQLD 내용 정리 :: SQL 기본 #3 (0) | 2020.08.16 |
[SQL기본 및 활용] 2020년 SQLD 내용 정리 :: SQL 기본 #2 (0) | 2020.08.15 |