담비의 개발블로그

국비지원교육 41일차(9주차&DB) 본문

국비교육

국비지원교육 41일차(9주차&DB)

담비12 2024. 1. 10. 15:48

데이터베이스 : data와 vase의 합성어

DBMS(database Management System) : 데이터베이스 관리 시스템

 

데이터베이스 분야에서 데이터를 원석, 정보를 보석으로 비유한다.

 

데이터 : 어떤 필요에 의해 수집했지만 아직 특정 목적을 위해 평가하거나 정제하지 않은 값 or 사실 or 자료자체

정보 : 수집한 데이터를 어떠한 목적을 위해 분석하거나 가공하여 가치를 추가하거나 새로운 의미를 이끌어 낼 수 있는 결과

 

 

파일 시스템을 통한 데이터 관리 

- 데이터베이스 개념이 등장하기 전에 사용하던 방법이다. 서로 다른 여러 응용 프로그램이 제공하는 기능에 맞게 필요한 데이터를 각각 저장하고 관리한다. 각 파일에 저장한 데이터는 서로 연관이 없고 중복 또는 누락이 발생할 수 있다.

 

DBMS를 통한 데이터 관리

- 여러 목적으로 사용할 데이터의 접근&관리 등의 업무를 DBMS가 전담한다.  응용 프로그램이 필요한 데이터 작업을 DBMS에 요청하면, DMS는 자신이 관리하는 데이터베이스로 관련 작업을 수행하고 결과값을 제공한다.

 

 

데이터 모델

 

계층형 데이터 모델

- 나뭇가지 형태의 트리 구조를 활용하여 데이터 관련성을 계층별로 나누어 부모 자식 같은 관계를 정의하고 데이터를 관리한다. 일대다 구조의 데이터를 표현하기에는 알맞지만 자식 개체가 여러 부모를 가진 관계는 표현할 수 없다.

 

네트워크형 데이터 모델

- 그래프 구조를 기반으로 한다. 개체 간 관계를 그래프 구조로 연결하므로 자식 개체가 여러 부모 개체를 가질 수 있다는 점에서 계층형 데이터 모델과 차이가 있다.

 

객체 지향형 데이터 모델

- 객체 지향 프로그래밍처럼 데이터를 독립된 갬체로 구성하고 관리하며 상속, 오버라이드 등 객체 지향 프로그래밍에 사용되는 강력한 기능을 활용할 수 있다.

 

관계형 데이터 모델

- 데이터 간 관계에 초점을 둔다. 각 데이터의 독립 특성만을 규정하여 데이터 묶음을 나눈다. 

 

 

관계형 데이터 베이스와 SQL

 

관계형 데이터 베이스

- 관계형 데이터 모델 개념을 바탕으로 데이터를 저장&관리하는 데이터 베이스

 

SQL

- RDBMS에서 데이터를 다루고 관리하는데 사용하는 데이터베이스 질의 언어이다. 즉 RDBMS에 데이터에 고난해 물어보고 결과를 얻는다.

 

 

관계형 데이터베이스의 구성 요소

 

테이블

- 엑셀의 시트로 생각하면 편하다.

- 데이터를 2차원 표 형태로 저장하고 관리한다. 이 표 형태를 테이블이라고 한다.

 

- 레코드라고 불린다.

- 저장하려는 하나의 개체를 구성하는 여러 값을 가로로 늘어뜨린 형태이다.

 

 - 데이터를 대표하는 이름과 공통 특성을 정의한다. 

- 열은 저장정보의 종류와 저장 가능한 값의 최대 길이 그리고 값의 중복을 허용하지 않는 등의 저장 조건과 범위를 지정할 수 있다.

 

 

 

 

특별한 의미를 지닌 키, 열

 

기본키(PK : Primary Key)

- 여러 키 중에서 가장 중요한 키로서 한 테이블 내에서 중복되지 않는 값만 가질 수 있는 키를 말한다.

1. 테이블에 저장된 행을 식별할 수 있는 유일한 값이어야 한다.

2. 값의 중복이 없어야 한다.

3. null 값을 가질 수 없다.

 

보조키

- 대체키라고도 부르며 후보키에 속해 있는 키이다.

 

외래키(FK : Foreign Key)

- 특정 테이블에 포함되어 있으면서 다른 테이블의 기본키로 지정된 키를 말한다.

 

복합키

- 여러 열을 조합하여 기본키 역할을 할 수 있게 만든 키를 말한다.

 

 


자료형

- 데이터가 어떤 형태의 데이터인지를 말할때 IT 분야에서는 보통 '자료형'이라는 용어를 사용한다.

- VARCHAR2(길이) : 4000byte만큼의 가변 길이 문자열 데이터를 저장할 수 있다.

- NUMBER(전체 자릿수, 소수점 이하 자릿수) : +38 and -38 자릿수의 숫자를 저장할 수 있다. NUMBER(p, s) 와 같이 표기할 경우 s자리만큼 소수점 이하 자릿수를 표현하고, 이 소수점 자리를 포함한 전체 p자리만큼 숫자 데이터를 저장한다.

 

객체 

- 오라클 데이터베이스 내에서 데이터를 저장하고 관리하기 위한 논리 구조를 가진 구성요소

- 테이블 : 데이터를 저장하는 장소

- 인덱스 : 테이블의 검색 효율을 높이기 위해 사용함

- 시퀀스 : 일련 번호를 생성해 줌

 

PL/SQL

- 오라클 데이터베이스의 데이터 관리를 위한 별도의 프로그래밍 언어

- PL/SQL을 사용하면 변수, 조건문, 반복문 등 프로그래밍 언어에서 제공하는 요소를 사용하여 데이터를 관리할 수 있다.


SQL을 사용할 때 보통 대문자로 사용을 한다. 대문자 소문자 상관없이 쓸 수 있다.

 

SELECT

- 데이터 베이스에 보관되어 있는 데이터를 조회하는 데 사용한다. SELECT절과 FROM절을 기본 구성으로 SELECT문을 작성한다.

 

FROM절

- 조회할 데이터가 저장된 테이블 이름을 명시한다.

 

작성방식

SELECT [조회할 열 1 이름], [열2 이름], .....,[열N 이름]

FROM [조회할 테이블 이름];

 

*

SELECT * FROM 조회할 테이블 이름; 이렇게 작성하면 테이블 전체 열을 조회할 수 있다.

 

DISTINCT

- SELECT문으로 데이터를 조회한 후 DISTNCT를 사용하여 중복을 제거한다.

- 중복 데이터를 삭제할 수 있다.

SELECT DISTINCT DEPTNO 

FROM EMP;

 

ALL

- ALL은 DISTINCT와 반대로 데이터 중복을 제거하지 않고 그대로 출력한다.

SELECT ALL JOB, DEPTNO

FORM EMP;

 

별칭 지정 방식

SAL*12+COMM 이렇게 연산을 쓴 SAL의 이름을 ANNSAL로 변경하는 방법

SAL*12+COMM ANNSAL : 연산 및 가공된 문장 이후 한 칸 띄우고 별칭 지정

SAL*12 COMM "ANNSAL" : 연산 및 가공된 문장 이후 한 칸 띄우고 별칭을 큰따옴표(" ")로 묶어 지정

SAL*12 COMM AS ANNSAL : 연산 및 가공된 문장 이후 한 칸 띄운 후 'AS', 한칸 뒤에 별칭 지정

SAL*12 COMM AS "ANNSAL" : 연산 및 가공된 문장 이후 한 칸 띄운 후 'AS', 한칸 뒤에 별칭을 큰따옴표(" ")로 묶어 지정

- 실무에서는 4가지 방식 중 세 번째 방식을 선호하는 경향이 있다.

 

ORDER BY

- 데이터를 정렬된 상태로 출력하기 위해 사용한다.

- 여기저기 흩어져 있는 데이터를 특정 기준에 따라 가지런히 순서를 맞추는 것은 많은 자원(비용)을 소모한다. 정렬을 하지 않는다면 결과를 더 빨리 출력할 수 있다.

- SQL문의 효율이 낮아지면 서비스 응답 시간이 느려진다. 

- 많은 비용과 효율이 낮아지는 ORDER BY를 사용할 때는 잘 생각해보고 사용해야 한다.

 

SELECT [조회할 열 1 이름], [열2 이름], .....,[열N 이름]

FROM [조회할 테이블 이름]

.

.

.

ORDER BY [정렬하려는 열 이름 (여러 열 지정 가능)] [정렬 옵션];

 

오름차순 (오름차순 혼자만 쓸거면 ASC는 사용 하지 않아도 된다)

SELECT [조회할 열 1 이름], [열2 이름], .....,[열N 이름]

FROM [조회할 테이블 이름]

.

.

.

ORDER BY [정렬하려는 열 이름 (여러 열 지정 가능)] ASC ;

 

 

내림차순

SELECT [조회할 열 1 이름], [열2 이름], .....,[열N 이름]

FROM [조회할 테이블 이름]

.

.

.

ORDER BY [정렬하려는 열 이름 (여러 열 지정 가능)] DESC ;