일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 오라클클라우드에 젠킨스 설치하기
- 오라클
- 썸머노트
- 오라클월별데이터
- Spring Boot가 해결하려고 했던 문제
- 오라클주별데이터
- jsp
- 스프링 Ioc
- 오라클통계
- HTML
- 자바 왕기초
- maven
- CSS
- 스프링
- 스프링 부트가 해결하려고 했던 문제
- 스프링 에러
- 스프링 제어역전
- 자바
- 자바 기초
- 세션
- java
- 스프링 Ioc Container
- 자바왕기초
- 자바왕초보
- 스프링과 스프링부트 차이점
- 오라클일별데이터
- 자바기초
- 스프링 구글차트로 기간별 현황 조회하기
- 스프링 구글차트
- 제이쿼리
- Today
- Total
Just Do it
데이터 베이스 개념 잡기 본문
*출처: <비전공자도 기초부터 확실하게! 오라클로 배우는 데이터베이스 입문>, 이지훈, 이지스퍼블리싱
1. 데이터 베이스
1-1. 데이터와 데이터베이스, DBMS
- DBMS: Database Management System, 데이터베이스 관리 시스템
- 실무에서는 데이터베이스와 데이터베이스 관리 시스템을 따로 구별하지 않고 '디비(DB)' 또는 '데이터베이스'라고 부른다.
- 데이터베이스를 통한 데이터 관리: 응용 프로그램이 필요한 데이터 작업을 DBMS에 요청하면, DBMS는 자신이 관리하는 데이터베이스로 관련 작업을 수행하고 결과값을 제공한다.
1-2. 데이터 모델
- 데이터 모델: 컴퓨터에 데이터를 저장하는 방식을 정의해 놓은 개념 모형.
- 대표 데이터 모델: 계층형, 네트워크형, 관계형, 객체 지향형 등
1) 계층형 데이터 모델
- 나뭇가지 형태의 트리(tree) 구조를 활용하여 데이터 관련성을 계층별로 나누어 부모 자식 같은 관계를 정의하고 데이터를 관리한다.
- 일대다(1:N) 관계의 구조를 가진다.
- 상위 개념에 하위 개념이 포함되어 있는 특징을 가진다.
- 하나의 부모 개체가 여러 자식을 가질 수 있는 반면 자식 개체는 여러 부모 개체를 가질 수 없다는 제약이 있다.
- 일대다 구조의 데이터를 표현하기에는 알맞지만 자식 개체가 여러 부모를 가진 관계는 표현할 수 없다.
2) 네트워크형 데이터 모델
- 망형 데이터 모델이라고 하며 그래프 구조를 기반으로 한다.
- 개체 간 관계를 그래프 구조로 연결하므로 자식 개체가 여러 부모 개체를 가질 수 있다는 점에서 계층형 데이터 모델과 차이가 있다.
3) 객체 지향형 데이터 모델
- 객체 지향 프로그래밍처럼 데이터를 독립된 객체로 구성하고 관리하며 상속, 오버라이드 등 객체 지향 프로그래밍에 사용되는 강력한 기능을 활용할 수 있다.
- 객체 지향형 모델 개념을 완전히 데이터베이스에 적용하는 것은 쉽지 않기 때문에 이를 적용한 상용 DBMS는 많지 않다.
- 다만 오라클 데이터베이스와 같은 여러 DBMS 제품군이 관계형 데이터 모델을 바탕으로 객체 개념을 도입하여 '객체 관계형 DBMS'로 영역을 확장하고 있다.
4) 관계형 데이터 모델
- 관계형 데이터 모델은 다른 모델과 달리 데이터 간 관계(relationship)에 초점을 둔다.
- 관계형 데이터 모델에서는 각 데이터의 독립 특성만을 규정하여 데이터 묶음으로 나눈다. 그리고 중복이 발생할 수 있는 데이터는 별개의 릴레이션(relation)으로 정의한 후 공통 코드를 가지고 데이터 묶음을 연결한다.
- 관계형 데이터 모델의 핵심 구성 요소
이름 | 설명 |
개체 (entity) | 데이터베이스에서 데이터화하려는 사물, 개념의 정보 단위이다. 관계형 데이터베이스의 테이블(table)개념과 대응되며 테이블은 릴레이션(relation)으로 표기하기도 합니다. |
속성 (attribute) | 개체를 구성하는 데이터의 가장 작은 논리적 단위로서 데이터의 종류, 특성, 상태 등을 정의한다. 관계형 데이터베이스의 열(column) 개념과 대응된다. |
관계 (relationship) | 개체와 개체 또는 속성 간의 연관성을 나타내기 위해 사용한다. 관계형 데이터베이스에서는 테이블 간의 관계를외래키(foreign key) 등으로 구현하여 사용한다. |
- 이 핵심 구성 요소를 활용하여 데이터의 독립성(independency)과 무결성(integrity)과 같은 데이터를 안전하게 관리하기 위해 필요한 개념들을 정의하게 된다.
1-3. 관계형 데이터베이스와 SQL
1) 관계형 데이터베이스란?
- 관계형 데이터베이스를 관리하는 시스템을 RDBMS(Relational Database Management System), 즉 관계형 데이터베이스 관리 시스템이라고 부른다.
- 실무에서는 보통 오라클 데이터베이스와 같은 RDBMS를 가리켜 '디비' 또는 '데이터베이스'라고 부른다.
2) SQL 이란?
- SQL은 Structrued Query Language 의 약자로 '에스큐엘' 또는 '시퀄'이라고 부른다.
- SQL은 RDBMS에서 데이터를 다루고 관리하는데 사용하는 데이터베이스 질의 언어이다.
- SQL은 사용 목적에 따라서 다음과 같이 나뉜다.
종류 | 설명 | 다루는 장 | |
DQL(Data Query Language) | RDBMS에 저장한 데이터를 원하는 방식으로 조회하는 명령어 | 교재 4~9장 | |
DML(Data Manipulation Language) | RDBMS 내 테이블의 데이터를 저장, 수정, 삭제하는 명령어 | 10장 | |
DDL(Data Definition Language) | RDBMS 내 데이터 관리를 위해 테이블을 포함한 여러 객체를 생성, 수정, 삭제하는 명령어 | 12~14장 | |
TCL(Transaction Control Language) | 트랜잭션 데이터의 영구 저장, 취소 등과 관련된 명령어 | 11장 | |
DCL(Data Control Language) | 데이터 사용 권한과 관련된 명령어 | 15장 |
2. 관계형 데이터베이스와 오라클 데이터베이스
2-1. 관계형 데이터베이스의 구성 요소
- 관계형 데이터베이스를 구성하는 주요 요소는 다음과 같다.
1) 테이블
- 관계형 데이터베이스는 기본적으로 데이터를 2차원 표 형태로 저장하고 관리한다. 이 표 형태의 데이터 저장 공간을 테이블(table)이라고 한다.
- 가로줄을 행(row), 세로줄을 열(column)이라고 한다.
- 관계형 데이터베이스에서 테이블은 관계(relation), 행은 튜플(tuple) 또는 레코드(record) 그리고 열은 속성을 의미하는 애트리뷰트(attribute) 또는 필드(field)라고 한다.
2) 특별한 의미를 지닌 열, 키
- 키는 하나의 테이블을 구성하는 여러 열 중에서 특별한 의미를 지닌 하나 또는 여러 열의 조합을 의미한다.
- 종류별로 데이터를 구별하거나 테이블 간의 연관 관계를 표현할 때 키로 지정한 열을 사용한다.
- 키는 기본키(primary key), 후보키(candidate key), 외래키(foreign key), 복합키(composite key) 등으로 구분할 수 있다.
2-1) 기본키(primary key, PK)
- 기본키는 여러 키 중에서 가장 중요한 키로서 한 테이블 내에서 중복되지 않는 값만 가질 수 있는 키이다. 기본 속성은 다음과 같다.
* 테이블에 저장된 행을 식별할 수 있는 유일한 값이어야 한다.
* 값의 중복이 없어야 한다.
* NULL 값을 가질 수 없다.
- 기본키는 중복되지 않는 유일한 값이라는 특성을 가졌기 때문에 하나 또는 여러 열의 조합으로 만들 수 있다.
2-2) 보조키
- 보조키는 대체키(alternate key) 라고도 부르며 후보키(candidate key)에 속해 있는 키이다. 그리고 후보키 중에서 기본키로 지정되지 않은 열이다.
2-3) 외래키(foreign key, FK)
- 외래키는 특정 테이블에 포함되어 있으면서 다른 테이블의 기본키로 지정된 키를 의미한다.
- 외래키는 데이터의 중복을 피하기 위해 테이블 사이의 관계를 규명하기 위한 필수 요소이다.
2-4) 복합키(composite key)
- 복합키는 여러 열을 조합하여 기본키 역할을 할 수 있게 만든 키를 뜻한다.
- 복합키를 만들 때 적게는 두세 개, 많게는 열 개가 넘는 열을 조합하기도 한다. 왜냐하면 하나의 열만으로 행을 식별하는 것이 불가능하여 두 개 이상의 열 값을 함께 사용해야 각 행이 유일한 데이터로서 가치를 지니기 때문이다.
- 다양한 키는 결국 관계형 데이터베이스에서 테이블 행을 구분하기 위해 그리고 여러 테이블 간의 관계를 정의하기 위해 사용한다는 점을 기억해야한다.
2-2. 오라클 데이터 베이스
1) 오라클 데이터베이스와 버전
- 현업에서는 데이터베이스를 한번 구축하면 업그레이드가 쉽지 않기 때문에 아직도 많은 기업에서는 오라클 11g 버전을 사용한다.
2) 자료형
- 오라클 데이터베이스는 여러 자료형을 제공하고 있으며 가장 많이 사용하는 대표적인 자료형은 다음과 같다.
- VARCHAR2(길이), NUMBER(전체 자릿수, 소수점이하 자릿수), DATE
예) NUMBER(4): 네자리 숫자만 저장 가능
* 이와 같이 하나의 자료형에 맞춰 한 종류의 데이터를 저장할 수 있는 자료형을 스칼라(scalar)형이라고 한다.
- 자료형은 테이블을 구성하는 열에 지정한다.
3) 객체
- 객체는 오라클 데이터베이스 내에서 데이터를 저장하고 관리하기 위한 논리 구조를 가진 구성 요소이다.
- 일반적으로 가장 많이 사용하고 있는 객체의 종류는 다음과 같다.
객체 | 설명 | 다루는 부분 |
테이블(table) | 데이터를 저장하는 장소 | 전체 |
인덱스(index) | 테이블의 검색 효율을 높이기 위해 사용함 | 13장 |
뷰(view) | 하나 또는 여러 개의 선별된 데이터를 논리적으로 연결하여 하나의 테이블처럼 사용하게 해 줌 | 13장 |
시퀀스(sequence) | 일련 번호를 생성해 줌 | 13장 |
시노님(synonym) | 오라클 객체의 별칭(다른 이름)을 지정함 | 13장 |
프로시져(procedure) | 프로그래밍 연산 및 기능 수행이 가능함 (반환 값 없음) | 넷째마당 |
함수(function) | 프로그래밍 연산 및 기능 수행이 가능함 (반환 값 있음) | 넷째마당 |
패키지(package) | 관련 있는 프로시저와 함수를 보관함 | 넷째마당 |
트리거(trigger) | 데이터 관련 작업의 연결 및 방지 관련 기능을 제공함 | 넷째마당 |
4) PL/SQL
- 오라클 데이터베이스를 포함한 여러 관계형 데이터베이스에서 데이터를 관리하기 위해 복잡한 기능이 필요할 때 기존 SQL만으로 이를 구현하는 것은 다소 한계가 있다.
- 그래서 오라클 데이터베이스는 데이터 관리를 위해 별도의 프로그래밍 언어를 제공하는데 이를 PL/SQL(Procedural Language extension to SQL)이라고 한다.
- 보통 오라클 데이터베이스 프로그래밍이라고 하면 SQL문과 PL/SQL을 사용하여 프로그램을 제작하는 것을 말한다.
- PL/SQL을 사용하면 변수, 조건문, 반복문 등 프로그래밍 언어에서 제공하는 요소를 사용하여 데이터를 관리할 수 있다.
'주니어 개발자로 성장하기' 카테고리의 다른 글
맥Mac 터미널에서 MySQL 접속하기 (0) | 2022.02.14 |
---|---|
[생활코딩] DataBase 소개 (0) | 2022.02.14 |