반응형
목차
데이터
- 자료라는 의미로 사용
- 자료
- 수, 문자 등의 형태로 이루어진 단위
- 추론과 추정의 근거를 이루는 객관적 사실
- 데이터 자체
- 정보
- 자료를 가공해서 의미를 얻은 것
- 데이터베이스
- Database
- 데이터를 구조적으로 모아 저장한 것
- DB
- ≠ DBMS
- 데이터베이스를 관리하는 시스템
- DBMS의 종류
- Oracle
- MariaDB
- SQL Server
- MySQL
- PostgreSQL
- Database
- 관계형 데이터베이스 (RDB)
- 정형 데이터
- 데이터 구조와 규칙이 정해져 있으며, 체계화 되어 있음
- 대부분의 기업에서 업무용으로 사용
- NoSQL
- 비 정형 데이터
- 데이터 구조와 규칙이 정해져 있지 않음
- 빅 데이터 처리
- 비 정형 데이터
- 텍스트, 이미지 …
- 종류
- MongoDB, Redis, Firebase …
- 반 정형 데이터
- 구조는 있으나 반 정도만 있는 것
- 종류
- XML, JSON, HTML …
활용 분야
- 마케팅 분야
- 방대한 고객 데이터를 활용하여 시장 변화에 대응
- 아양한 환경에서의 피드백을 활용하여 데이터 추출 분석
- 커머스 분야
- 사용자 반응 및 사용자 경험 분석을 통한 서비스 개선
- 프로그래밍 분야
- 어플리케이션 개발
- 금융 분야
- 다양한 금융 분야에 적용
데이터베이스의 구조
- 데이터 베이스
- 테이블 스페이스
- 테이블
- 데이터
- 테이블
- 테이블 스페이스
- 테이블
- 특정한 종류의 데이터를 구조적 목록으로 묶은 것
- 데이터를 종류 별로 구분하는 단위
- 행
- 로우, 레코드, 튜플, 인덱스
- 열
- 컬럼, 속성, 필드, 피쳐, 변수
- 기본 키 (PK, Primary Key)
- 고유, 유일한 키
- 데이터를 구분할 수 있는 유니크한 키
데이터베이스 특징
- 통합된 데이터
- 동일한 내용의 데이터가 중복되지 않음
- 중복 데이터 - 관리 어려움
- 저장된 데이터
- 디스크 등 저장 매체에 저장
- 변화되는 데이터
- 데이터의 삽입, 삭제, 수정을 통한 최신 데이터 유지
- 공용 데이터
- 여러 이용자(어플리케이션)가 동시에 공유 가능
타입 (자료형)
- 문자
- CHAR(n)
- n 만큼 고정된 문자
- 무조건 n글자
- VARCHAR(n), VARCHAR2(n)
- n 크기만큼 가변 길이 문자
- n 이하의 가변 길이 글자
- CHAR(n)
- 숫자
- NUMBER(정수 자리수, 소수점 자리수)
- 날짜
- DATE(날짜 + 시간타입)
- 데이터
- BLOB
- CLOB
- BFILE
관계형 데이터 모델의 핵심 구성 요소
- 개체
- 데이터화 하려는 사물, 개념의 정보 단위
- 테이블 개념과 대응, 릴레이션으로 표기
- 속성
- 개체를 구성하는 데이터의 가장 작은 논리적 단위
- 종류, 특성, 상태를 정의
- **열(컬럼)**에 대응
- 관계
- 개체와 개체, 속성과 속성 간의 연관성을 나타내기 위해 사용
- **외래키(FK)**등으로 구현하여 사용
- 데이터의 독립성과 무결성과 같은 데이터를 안전하게 관리하게 위해 필요한 개념들을 정의
SQL
- 구조적 질의 언어
- 종류
- DQL
- RDBMS에 저장한 데이터를 원하는 방식으로 조회하는 명령어
- DML
- RDBMS 내 데이터를 저장,수정,삭제하는 명령어
- SELECT, INSERT, UPDATE, DELETE
- DDL
- RDBMS 내 데이터 관리를 위해 테이블을 포함한 여러 객체를 생성, 수정, 삭제하는 명령어
- CREATE, ALTER, DROP, RENAME, TRUNCATE
- TCL
- 트랜잭션 데이터의 영구 저장, 취소 등과 관련된 명령어
- COMMIT, ROLLBACK, SAVEPOINT
- DCL
- 데이터 사용 권한과 관련된 명령어
- GRANT, REVOKE
- DQL
테이블
- 행
- 저장하려는 하나의 개체를 구성하는 여러 값
- 튜플, 레코드, 인덱스 …
- 열
- 저장하려는 데이터를 대표하는 이름과 공통 특성을 정의
- 속성, 어트리뷰트, 필드, 컬럼, 피쳐 …
- 키
- 특별한 의미를 지니고 있는 열
키
- 기본키 (PK)
- 가장 중요한 키
- 한 테이블 내에서 중복되지 않는 값만 가질 수 있는 키
- 기본키의 속성
- 테이블에 저장된 행을 식별할 수 있는 유일한 값
- 값의 중복이 없어야함
- NULL을 가질 수 없음
- 후보키
- 기본키가 될 수 있는 모든 키
- 대체키
- 후보키에 속해있는 키
- 후보키 중에 기본키로 지정되지 않은 열
- 외래키 (FK)
- 특정 테이블에 포함되어 있으면서 다른 테이블의 기본키로 지정된 키
- 복합키
- 여러 컬럼(열, 속성)을 조합하여 하나의 기본키로 사용하는 것
객체
- 테이블
- 데이터를 저장하는 장소
- 인덱스
- 테이블의 검색 효율을 높이기 위해 사용
- 뷰
- 하나 또는 여러 개의 선별된 데이터를 논리적으로 연결하여 하나의 테이블처럼 사용하게 해줌
- 시퀀스
- 일련 번호 생성
- 시노님
- 오라클 객체의 별칭(다른 이름)을 지정
- 프로시저
- 반환 값이 없으나 반환 가능
- 함수
- 프로그래밍 연산 및 기능 수행 가능
- 반환 값이 있음
- 패키지
- 관련 있는 프로시저 함수를 보관
- 트리거
- 데이터 관련 작업의 연결 및 방지 관련 기능을 제공
PL/SQL
- 오라클 데이터베이스를 포함한 여러 관계형 데이터베이스에서 데이터를 관리하기 위해 복잡한 기능이 필요할 때 기존 SQL만으로 이를 구현하는 것은 제한적
- 오라클 데이터베이스가 제공하는 별도의 프로그래밍 언어
테이블 살펴보기
- 테이블 구성 살펴보기
- DESC (Description)
- 테이블에 대한 정보를 보여줌
DESC EMP; DESC DEPT; 출력 결과 이름 널? 유형 -------- -------- ------------ EMPNO NOT NULL NUMBER(4) ENAME VARCHAR2(10) JOB VARCHAR2(9) MGR NUMBER(4) HIREDATE DATE SAL NUMBER(7,2) COMM NUMBER(7,2) DEPTNO NUMBER(2) 이름 널? 유형 ------ -------- ------------ DEPTNO NOT NULL NUMBER(2) DNAME VARCHAR2(14) LOC VARCHAR2(13)
- DESC (Description)
데이터 조회 방법
- 행 단위 조회
- 셀렉션
- 열 단위 조회
- 프로젝션
- 두 개 이상의 테이블을 사용하여 조회
- 셀렉션 + 프로젝션
- 조인
- 조인 횟수 = 테이블 갯수 - 1
SELECT와 FROM
- SELECT
- 데이터를 조회하는 데 사용
- FROM과 조합하여 사용
- 사용법
- SELECT 조회할 열 FROM 조회할 데이터가 들어있는 테이블 명
- *은 전부, 전체
SELECT * FROM emp; 출력 결과 7369 SMITH CLERK 7902 80/12/17 800 20 7499 ALLEN SALESMAN 7698 81/02/20 1600 300 30 7521 WARD SALESMAN 7698 81/02/22 1250 500 30 7566 JONES MANAGER 7839 81/04/02 2975 20 7654 MARTIN SALESMAN 7698 81/09/28 1250 1400 30 7698 BLAKE MANAGER 7839 81/05/01 2850 30 7782 CLARK MANAGER 7839 81/06/09 2450 10 7788 SCOTT ANALYST 7566 87/04/19 3000 20 7839 KING PRESIDENT 81/11/17 5000 10 7844 TURNER SALESMAN 7698 81/09/08 1500 0 30 7876 ADAMS CLERK 7788 87/05/23 1100 20 7900 JAMES CLERK 7698 81/12/03 950 30 7902 FORD ANALYST 7566 81/12/03 3000 20 7934 MILLER CLERK 7782 82/01/23 1300 10
SELECT EMPNO, ENAME, DEPTNO FROM EMP; 출력 결과 7369 SMITH 20 7499 ALLEN 30 7521 WARD 30 7566 JONES 20 7654 MARTIN 30 7698 BLAKE 30 7782 CLARK 10 7788 SCOTT 20 7839 KING 10 7844 TURNER 30 7876 ADAMS 20 7900 JAMES 30 7902 FORD 20 7934 MILLER 10
DISTINCT
- SELECT로 데이터를 조회한 후 중복 데이터를 삭제
- 열 중복 제거 (열이 1개인 경우)
- 중복 적용 전
SELECT DEPTNO FROM EMP; 출력 결과 20 30 30 20 30 30 10 20 10 30 20 30 20 10
- 중복 적용 후
SELECT DISTINCT DEPTNO FROM EMP; 출력 결과 30 20 10
- 실제로 DISTINCT로 중복을 제거하는 것 보다 그룹핑을 활용하는 방법이 더 많이 쓰인다.
SELECT deptno FROM emp group by deptno; 출력 결과 30 20 10
- 열 중복 제거 (열이 여러 개인 경우)
- 여러 속성이 완전히 같아야 제거됨
- 아래 실행문은 JOB(앞)으로 먼저 제거 후 DEPTNO(뒤)를 제거한다는 느낌으로 이해하기
- 중복 적용 전
SELECT JOB, DEPTNO FROM EMP; 출력 결과 **CLERK 20 // SALESMAN 30 // SALESMAN 30 //** MANAGER 20 SALESMAN 30 // MANAGER 30 MANAGER 10 ANALYST 20 // PRESIDENT 10 SALESMAN 30 // **CLERK 20 //** CLERK 30 ANALYST 20 // CLERK 10
- 중복 적용 후
SELECT DISTINCT JOB, DEPTNO FROM EMP; 출력 결과 MANAGER 20 PRESIDENT 10 CLERK 10 SALESMAN 30 ANALYST 20 MANAGER 30 MANAGER 10 CLERK 30 CLERK 20
메모
- ERD
- 개체 관계 다이어그램
- Logical - Physical
- 논리, 물리 데이터 베이스
- 논리
- 실체가 없는
- 물리
- 실제 존재하는
- 무결성
- 결함이 없는 상태
- 식별, 비식별 관계
- 식별
- 부모와 자식의 키본키가 같음
- 부모가 생성되어야 자식이 생성될 수 있음
- 강한
- 비식별 ( * )
- 부모의 테이블 키를 자신의 기본키로 사용하지 않고 외래키로 사용
- 자식 테이블이 부모와 독립적으로 생성 가능
- 조금 더 자유로운 데이터 생성, 수정 가능
- 느슨한
- 식별
- 정규화
- 테이블 관련된 키 값을 토대로 나누는 것
- 데이터 중복을 줄이기 위해서 시행
- 많은 프로그래밍 언어는 대소문자를 구변하므로, SQL을 구분하고 가독성을 높이기 위해 대문자만을 사용하는 것을 권장
- 미래의 가독성을 위해 띄어쓰기와 줄 바꿈을 사용하는 것을 권장
728x90
반응형
'Database' 카테고리의 다른 글
4/24 - DDL (0) | 2025.04.27 |
---|---|
4/23 - 조인, 서브 쿼리 (0) | 2025.04.27 |
4/22 - 데이터베이스, 데이터 처리와 가공을 위한 오라클 함수, 다중행 함수와 데이터 그룹화 (0) | 2025.04.27 |
4/21 - SQL 데이터 정의어, 오라클 함수 (0) | 2025.04.27 |
4/17 - 데이터베이스 시작 (0) | 2025.04.19 |