데이터베이스 개요
데이터가 사람에게 유용한 의미로 쓰일 수 있도록 처리되면 정보 Information
데이터베이스 정의
관련있는 데이터의 저장소로, 여러 사람이나 응용시스템에 의해 참조 가능하도록 서로 논리적으로 연관되어 통합 관리되는 데이터의 모임이다
데이터베이스 특징
- 통합된 Intergrated: 데이터의 특성, 실체, 상호 간의 의믜 관계와 형식 관계를 기술한 개념적인 구조에 따라 편성된 데이터의 집합
- 관련있는 Related: 동시에 복수의 적용 업무나 응용 시스템에 대한 데이터 공급 기지로서 공유할 필요 있는 데이터 보관, 관리
- 중복 Redundancy 최소화: 동일한 내용의 데이터가 중복되지 않아야 하고, 다양한 접근 방식이 마련되어 있어야 하며, 검색이나 갱신이 효율적으로 이루어질 수 있도록 중복 최소화
- 보조기억장치에 저장: 자기 디스크나 자기 테이프 등 컴퓨터에서 사용할 수 있는 보조 기억 장치에 저장
- 무결성: 데이터가 정확성을 항상 유지
- 동시 접근: 여러 사람이 동시에 자료에 접근하더라도 문제없이 작업 수행
- 보안 유지: 데이터베이스의 관리 및 접근을 효율적으로 관리해 보안 유지
- 장애 회복: 문제가 발생하더라도 이전 상태로 복구 가능
데이터베이스 추상화 3단계
- 물리적 단계 Physical Level / 내부 단계 Internal Level: DB관리자 DBA. 저장 장치의 내부에 실질적으로 데이터가 저장될 구조와 위치 결정하고, 하위 수준의 접근 방식과 바이트들이 어떻게 저장 장치로부터 변환이 되는지 다룬다. 즉, 하드웨어와 직접적인 상호작용을 한다. 데이터베이스의 물리적 구조를 기술한 것으로 하위 데이터 모델을 통해 표현한다.
- 논리적 단계 Logical Level / 개념 단계 Conceptual Level: DB설계자 DA. 데이터베이스에 저장될 데이터의 종류와 데이터 간의 관계를 기술한다. 복잡한 데이터베이스의 내부 구조를 알 필요 없이 비교적 간단한 데이터 구조로 전체 데이터베이스를 기술한다
- 뷰 단계 View Level / External Level: End User. 추상화의 최상의 단계로 사용자와 직접적인 상호작용을 한다. 논리적 단계의 데이터를 사용자에게 친숙한 형태의 View로 전환하여 사용자에게 제공한다. (서브스키마 또는 외부스키마 - 해당하며 사용자마다 다른 뷰에서 본인의 관심인 데이터베이스의 일부분을 정의한 것)
스키마
데이터베이스의 전체적인 설계로 데이터베이스를 구성하는 정보의 종류와 관계의 구체적인 기술. 데이터베이스의 기능을 3단계로 분리해 독립적으로 시스템을 구축하면서, 단계별 기능이 명확해지고 데이터베이스가 변경되거나 구조가 변화하여도 해당 단계에서만 업데이트되고 하위/상위 단계는 변하지 않아 유지보수에 유리하다.
- 개념스키마
- 논리스키마
- 물리스키마
데이터 독립성
- 논리적 데이터 독립성: 사용자의 응용프로그램 자체에 영향을 주지 않고 논리적 단계에서 논리 스키마 수정 가능
- 물리적 데이터 독립성: 사용자의 응용프로그램 자체나 데이터베이스의 논리 스키마에 영향을 주지 않고 데이터의 물리적 스키마 수정 가능
관계형 데이터 모델
관련성을 표현한 이차원 테이블
- 관계 구조 / 관계 스키마: 관계 이름인 학생과 학생의 속성 구성인(학번, 이름, 학과, 주소, 지도교수)과 같이 구성된다. 관계 이름과 속성 이름 처음 결정되면 시간의 흐름과 관계없이 동일한 내용이 계속 유지된다는 정적인 특성이 있다.
- 관계 사례: 관계 스키마에 삽입되는 실제 데이터 값, 자료. 시간이 변함에 따라 실제 사례 값이 변한다는 독적인 특성이 있다
- 속성 Attribute: 하나의 관계에서 각 열. 실제 데이터베이스에서는 필드, DBMS에서는 열이라고 표현한다
- 튜플: 하나의 관계에서 각 행으로, 관계에서 정의된 모든 속성 값들의 집합이다. 실제 데이터베이스에서는 레코드, DBMS에서는 행이라고 표현한다
- 도메인: 하나의 속성이 취할 수 있는 모든 값의 범위
관계의 특징
- 속성 이름의 유일성: 한 관계에서 속성 이름은 유일해야 한다
- 원자 값: 튜플 내의 모든 값은 더 이상 나눌 수 없는 원자 값 atomic value여야 한다
- 튜플 간의 순서: 한 관계에서 튜플 간의 순서는 무의미하다
- 속성 간의 순서: 한 관계에서 속성 간의 순서는 무의미하다
- 중복 불허: 한 관계에서 두 튜플의 속성 값이 모두 같은 것은 불허한다
키의 종류
- 후보키 Candidate Key: 하나의 관계에서 유일성과 최소성을 만족하는 키
- 기본키 Primary Key: 주 키는 관계에서 여러 튜플에서 하나의 튜플을 식별하는 역할 수행
- 외래키 Foreigh Key: 어느 관계의 속성들 중 일부가 다른 관계의 주 키가 될 때 이 키를 외래키라고 한다. 외래키를 이용해 관계와 관계를 연결한다
데이터베이스 관리 시스템 DMBS (Database Management System)
데이터베이스에서 정보를 쉽게 활용할 수 있도록 만든 프로그램이자 소프트웨어로 데이터베이스를 정의, 구축, 조작, 제어한다. 저장관리자 Storage Manager, 질의처리기 Query Processor, DBMS 인터페이스 도구 Interface Tool로 구성되어 있다.
- MySQL
- 오라클
- SQL 서버
데이터베이스 언어(SQL)
DBMS을 통해서 데이터베이스의 구축 및 사용자와 데이터베이스 간의 소통 수단으로 데이터 정의, 조작, 제어를 위해 사용하는 언어
- DDL (Date Definition Language): 데이터베이스 구축과 수정에 사용. 데이터베이스 구조와 데이터 형식, 접근방식 정의. 번역된 결과가 Data Dictionary 파일에 저장된다 (예: create, alter, drop, rename, truncate)
- DML (Data Manipulation Language): 사용자 DBMS와 응용프로그램 간의 interface를 제공해 사용자가 데이터를 직접 처리할 수 있게 해준다. 데이터베이스의 Sub Language 역할 (예: select, insert, update, delete)
- DCL (Data Control Language): 데이터베이스에 접근하고 객체들을 사용할 권한 부여, 회수 (예: grant, revoke)
오라클
- 서버: 오라클 인스턴스 + 오라클 데이터베이스
- 인스턴스: 백그라운드 프로세스 + 메모리. 사용자가 오라클 서버에 SQL 문을 입력하기 전에 반드시 오라클 인스턴스에 연결되어야 한다
- 접속: 사용자 프로세스와 서버 프로세스 간 통신 경로
- 세션: 사용자가 오라클 서버로부터 인증될 때부터 시작하여 사용자가 로그아웃을 하거나 비정상적으로 종료될 때까지 지속
오라클 설치 및 실행
프로그램: Oracle Database Express Edition (XE) 11g
→ 설치 과정에서 SYSTEM 계정의 비밀번호를 입력한다
오라클 데이터베이스
데이터베이스 생성 과정에서 데이터베이스 관리자 역할을 하는 SYS와 SYSTEM 계정이 자동적으로 생성된다.
SYS는 데이터 사전의, SYSTEM은 오라클 도구들이 사용하는 내부 테이블과 뷰의 소유자이다
오라클에서 데이터베이스 스키마 = 오라클 사용자이다
SQL PLUS 워크시트 창
SQL문이나 PL/SQL문을 입력, 편집, 실행 가능
클라이언트 스크립트 실행 가능
실행한 명령에 대한 기록을 유지하므로 이전에 실행한 명령을 쉽게 읽어들여 다시 실행할 수 있다
시스템 연결
오라클을 시작하기 위해서 Run SQL Command Line 프로그램에 접속해 위 비밀번호를 입력한다
connect system/(SYSTEM 계정 비밀번호)
# Connected
사용자 생성
create user (유저명) identified by (유저 비밀번호);
# User created
권한 부여
grant connect, resource to (유저이름);
grant create view to (유저이름);
# Grant succeeded
SQL Developer
좌상당 접속 +
→ 새로 만들기/데이터베이스 접속 선택
→ 접속 이름 설정, 터미널에서 생성한 사용자 이름/비밀번호 입력
* 오라클은 터미널을 종료해도 무방하다
* 포트 1521은 DB와 Developer를 연결해준다
* 포트 8080은 DB와 Web을 연결해준다
'데이터 청년 캠퍼스 > SQL | 군집분석 | 소셜분석' 카테고리의 다른 글
[SQL] 데이터 정의어 / 무결성 제약조건 / SELECT문 / 실습 (0) | 2022.07.24 |
---|---|
[소셜분석] 베이지안 감정 분류 모델, 소셜분석 파싱 실습 (1) | 2022.07.14 |
[소셜분석] Word Cloud 실습 - 앨리스, 스타워즈, 헌법 (0) | 2022.07.14 |
[소셜분석] 윈도우) Anaconda3(Python), JAVA, KoNLPy 라이브러리 설치 (0) | 2022.07.14 |
[소셜분석] 자연어 분석 KoNLPy 라이브러리 설치 및 실습 (0) | 2022.07.13 |