데이터 베이스
데이터와 데이터베이스, DBMS
1. 데이터
: 어떤 필요에 의해 수집했지만 아직 특정 목적을 위해 평가하거나 정제하지 않은 값
: 사실 또는 자료 자체를 의미
2. 정보
: 수집된 데이터를 어떤 목적을 위해 분석,가공하여 가치를 추가하거나 새로운 의미 부여한 결과 값
3. 효율적인 데이터 관리를 위한 조건
ㄱ. 데이터를 통합하여 관리
ㄴ. 일관된 방법으로 관리
ㄷ. 데이터 누락 및 중복 제거
ㄹ. 여러 사용자가 공동으로 실시간 사용 가능
4. 데이터베이스
: 특정 목적을 위해 여러 사람이 공유하여 사용 가능, 효율적인 관리와 검색을 위해 구조화한 데이터 집합
5. 파일시스템과 DBMS
- 파일시스템
: 서로 다른 응용 프로그램이 제공하는 기능에 맞게 필요한 데이터를 저장/관리
: 저장 데이터는 서로 연관 없고, 중복 또는 누락이 발생
- DBMS [ Database Management System , 데이터베이스 관리 시스템 ]
: 데이터베이스의 데이터 조작과 관리를 극대화한 시스템 소프트웨어
- 파일 시스템 방식의 문제점
ㄱ. 데이터 중복
ㄴ. 응용 프로그램이 개발데이터를 직접관리
ㄷ. 응용 프로그램이 데이터를 쓰는 방식이 각각 다름
ㄹ. 데이터가 특정 프로그램에 종속, 변경하면 기존 데이터 사용 가능
- DBMS를 통한 데이터 관리
ㄱ. 하나의 SW가 데이터를 관리하므로 데이터 중복 회피 가능
ㄴ. 여러 프로그램이 하나의 DBMS를 사용하기에 데이터 동시 공유 가능
ㄷ. 데이터 관리하는 방법의 통합
ㄹ. 응용프로그램과 별도로 DBMS를 통해 데이터 관리/보관
→ 응용프로그램의 업데이트와 변경에 관계없이 데이터 사용 가능
데이터 모델
데이터 모델 [ Data Model ]
: 컴퓨터에 데이터를 저장하는 방식을 정의해 놓은 개념 모형
1. 계층형 데이터 모델
: 트리 구조를 활용, 데이터 관련성을 계층별로 나누어 부모 자식 관계 정의, 데이터 관리
2. 네트워크형 데이터 모델
: 망형, 그래프 구조, 개체 간 관계를 그래프 구조로 연결 → 자식개체 + 여러 부모 개체
- 객체 지향형 데이터 모델 [ Object-oriented data model ]
: 데이터를 독립된 객체로 구성하고 관리하며 상속, Override 등 강력 기능 사용
- 관계형 데이터 모델 [ Relational data model ]
: 다른 모델과 달리 데이터 간 관계에 초점
: 각 데이터의 독립 특성만을 규정하여 데이터 묶음을 나눔
ㄱ. 관계형 데이터 모델의 구성 요소
A. 개체 [Entity]
: 데이터화하려는 사물,개념의 정보 단위 / Relation
B. 속성 [ Attribute ]
: 개체 구성하는 가장 작은 논리적 단위
C. 관계 [ Relationship ]
: 개체와 개체 또는 속성간의 연관성을 나타냄
ㄴ. 데이터의 독립성, 무결성 확보
관계형 데이터베이스와 SQL
- 관계형 데이터베이스 [ RDBMS, Relational Database Management System ]
: 데이터를 저장 / 관리하는 데이터베이스
- SQL [ Structured Query Language ]
: RDBMS에서 데이터를 다루고 관리하는 데 사용하는 데이터베이스 질의 언어
ㄱ. DQL [ Data Query Language ]
: RDBMS에 저장한 데이터를 원하는 방식으로 조회하는 명령어
ㄴ. DML [ Data Manipulation Language ]
: RDBMS 내 테이블의 데이터를 저장/수정/삭제하는 명령어
ㄷ. DDL [ Data Definition Language ]
: RDBMS 내 데이터 관리를 위해 테이블을 포함한 여러 객체를 생성,수정,삭제
ㄹ. TCL [ Transaction Control Language ]
: 트랜잭션 데이터의 영구 저장/취소 등과 관련된 명령어
ㅁ. DCL [ Data Control Language ]
: 데이터 사용 권한과 관련된 명령어
-----------------------------------------------------------------------------------------실습
1. conn /as sysdba 를 입력하여 cmd에서 관리자로 접속
2. show user 를 입력하여 현재 사용자가 누구인지 파악
3. alter user system identified by smart123; [ 현재 시스템의 비밀번호를 변경해주겠는 명령어 ]
4. 입력 후 conn system 을 입력하여 접속하면 pw를 입력하라고 나온다.
5. 앞서 지정해주었던 비밀번호 smart123을 입력하여 접속
6. 이후 show user을 입력하여 현재 system에 잘 접속하였는 지 확인
7. alter user hr account unlock [ hr은 oracle database에 미리 설치되어 있는 예제로 앞 명령어 입력하여 강제로 해제 시킨다. ]
8. 계정생성/해제 : create user scott identified by smart123;
: alter user scott identified by smart123;
9. ORACLE developer 실행 화면
10. SELET 문
SELECT [ 조회할 열 이름1 ] FROM [ 조회할 테이블 이름 ] ; SELECT는 조회할 열 이름 또는 출력할 데이터를 하나 이상 지정 또는 애스터리스트(*)로 전체 열을 지정 FROM은 조회할 테이블의 입력을 뒤에 가져온다.
SELECT [ 컬럼명 ] , AS [ 바꿀이름 ] FROM [ 테이블 명 ] : AS [ 바꿀이름 ] 지정 시 해당 컬럼의 이름 변경
11. WHERE 절의 사용
SELECT [ 컬럼명 ] FROM [ 테이블 명 ] WHERE [ 조회할 행을 선별하기 위한 조건 식 ]
위와 같이 WHERE절을 이용하면 자료 중에 원하는 자료를 골라서 확인할 수 있다.
12. 관계 연산자 AND 연산자의 사용 [ 맛보기 ]
AND 연산자는 WHERE절이 조건식이 두 개 이상 일 때 두 가지 모두를 나타나게 해준다.
13. 오름차순과 내림차순 정렬
오름차순
SELECT [컬럼명] FROM [테이블명] WHERE [조건식] ORDER BY [컬럼명] ;
내림차순
SELECT [컬럼명] FROM [테이블명] WHERE [조건식] ORDER BY [컬럼명] DESC ;
관계형 데이터베이스와 오라클 데이터
관계형 데이터베이스의 구성 요소
1. 테이블
: 관계형 데이터베이스는 기본적으로 데이터를 2차원 표 형태로 저장하고 관리
: 표 형태의 데이터 저장 공간을 테이블이라 한다.
: 테이블은 2차원 형태, 가로줄 [ 행, raw ] , 세로줄 [ 열, column ]
- 행 [ raw ]
: 하나의 개체를 구성하는 여러 값을 가로로 늘어뜨린 형태
- 열 [ column ]
: 저장하려는 데이터를 대표하는 이름과 공통 특성 정의
2. 키 [ KEY ]
: 하나의 테이블을 구성하는 여러 열 중에서 특별한 의미를 지닌 하나 혹은 여러 열 조합
: 기본키, 후보키, 외래키, 복합키 등으로 구분
ㄱ. 기본키 [ PK, Primary Key ]
: 여러 키 중에서 가장 중요한 키로서 한 테이블 내에서 중복 않는 값만 가짐
: 테이블에 저장된 행을 식별할 수 있는 유일한 값이어야 한다.
: 값의 중복이 없어야한다.
: NULL 값을 가질 수 없다.
ㄴ. 보조키 [ 대체키, Alternate Key ]
: 후보키에 속해있는 키, 기본키로 지정되지 않는 열
ㄷ. 외레키 [ FK, Foreign Key ]
: 특정 테이블에 포함되어 있으면서 다른 테이블의 기본키로 지정된 키
ㄹ. 복합키 [ Composite Key ]
: 여러 열을 조합하여 기본키 역할을 할 수 있게 만든 키
오라클 데이터베이스
1. 자료형
: 데이터베이스에 저장하는 데이터는 다양한 형태를 가진다.
- VARCHAR2(길이) : 4000byte만큼의 가변 길이 문자열 데이터 저장 가능
- NUMBER : 정수 38자릿수의 숫자를 저장 가능
- DATE : 날짜 형식을 저장하기 위해 사용하는 자료형
- CHAR(길이) : 4000byte만큼의 고정 길이 문자열 데이터 저장 가능
- NVARCHAR2(길이) : 4000byte만큼의 가변 길이 국가별 문자 세트 데이터 저장
- BLOB : 최대 크기 4GB의 대용량 이진 데이터 저장
- CLOB : 최대 크기 4GB의 대용량 텍스트 데이터 저장
- BFILE : 최대 크기 4GB의 대용량 이진 데이터 파일 저장
2. 객체
: Oracle DB내에서 데이터를 저장, 관리하기 위한 논리 구조를 갖는 구성 요소
- 테이블 [ table ] : 데이터를 저장하는 장소
- 인덱스 [ index ] : 테이블의 검색 효율을 높이기 위해 사용
- 뷰 [ view ] : 하나 또는 여러 개의 데이터를 논리적 연결, 하나의 테이블처럼 사용
- 시퀀스 [ sequence ] : 일련 번호를 생성
- 시노님 [ synonym ] : 오라클 객체의 별칭을 지정
- 프로시저 [ procedure ] : 프로그래밍 연산 및 기능 수행이 가능
- 함수 [ function ] : 프로그래밍 연산 및 기능 수행이 가능
- 패키지 [ package ] : 관련 있는 프로시저와 함수 보관
- 트리거 [ trigger ] : 데이터 관련 작업의 연결 및 방지 관련 기능 제공
'Programming > Database' 카테고리의 다른 글
데이터베이스 : 중간 연습 (0) | 2020.06.02 |
---|---|
데이터베이스5 (0) | 2020.06.02 |
데이터베이스4 (0) | 2020.06.01 |
데이터베이스3 (0) | 2020.05.29 |
데이터베이스2 (0) | 2020.05.28 |