BackEnd/MySQL 16

[DB] 정규화(Normalization)

정규화란? 정규화(Normalization)는 데이터베이스 설계 시 데이터의 중복을 최소화하고 일관성을 유지하기 위한 과정입니다. 정규화를 통해 데이터를 체계적으로 구조화하여 데이터 무결성을 보장하고, 효율적인 데이터 관리를 도모할 수 있습니다.왜 정규화가 필요한가? 데이터 중복 방지: 중복된 데이터를 제거함으로써 데이터 일관성을 유지할 수 있습니다.업데이트 이상 제거: 데이터 수정, 삭제, 삽입 시 발생할 수 있는 비정상적인 동작을 방지합니다.데이터 무결성 보장: 데이터의 정확성과 일관성을 유지합니다.효율적인 저장공간 사용: 중복 데이터를 줄여 저장소 공간을 절약합니다.유연한 확장성 제공: 잘 정규화된 데이터베이스는 새로운 데이터를 추가하거나 변경하기 쉽습니다.정규화의 단점 복잡성 증가: 테이블이 세분..

BackEnd/MySQL 2025.01.09

[DB] DCL

▶ DCL(Data Control Language)  데이터 제어 언어- 계정별로 DB 또는 DB 객체에 대한 접근(제어) 권한을 부여(GRANT), 회수(REVOKE)하는 언어 ▷ 계정(사용자)관리자 계정데이터베이스의 생성과 관리를 담당하는 계정. 모든 권한과 책임을 가지는 계정. ex) sys(최고관리자), system(sys에서 권한 몇개 제외된 관리자)사용자 계정데이터베이스에 대하여 질의, 갱신, 보고서 작성 등의 작업을 수행할 수 있는 계정으로 업무에 필요한 최소한의 권한만을 가지는 것을 원칙으로 한다. ex) KH계정(각자 이니셜 계정), workbook 등 ▷ 권한의 종류 시스템 권한 : DB접속, 객체 생성 권한- CRETAE SESSION : 데이터베이스 접속 권한- CREATE TABL..

BackEnd/MySQL 2024.09.18

[DB] VIEW , SEQUENCE, INDEX

▶ VIEW - SELECT 쿼리의 실행 결과를 화면에 저장한 논리적 가상 테이블 - 실제 테이블과는 다르게 실질적 데이터를 저장하고 있진 않지만 사용자는 테이블을 사용하는 것과 동일하게 사용 가능  -  SELECT문의 실행 결과(RESULT SET)를 저장하는 객체▷ VIEW 사용 목적   1) 복잡한 SELECT문을 쉽게 재사용하기 위해.  2) 테이블의 진짜 모습을 감출 수 있어 보안상 유리.  ▷ VIEW 사용 시 주의 사항   1) 가상의 테이블(실체 X)이기 때문에 ALTER 구문 사용 불가.  2) VIEW를 이용한 DML(INSERT,UPDATE,DELETE)이 가능한 경우도 있지만 제약이 많이 따르기 때문에 조회(SELECT) 용도로 대부분 사용.  ▷ VIEW 옵션 OR REPLACE..

BackEnd/MySQL 2024.09.17

[DB] DDL(Data Definition Language) ALTER, DROP

▶ DDL(Data Definition Language) 데이터 정의 언어로 객체(OBJECT)를 만들고(CREATE), 수정하고(ALTER), 삭제(DROP)하는 구문을 말함 ALTER테이블에 정의된 내용을 수정할 때 사용하는 데이터 정의어로 컬럼의 추가/삭제, 제약조건의 추가/삭제, 컬럼의 자료형 변경, DEFAULT 값 변경, 테이블 명/컬럼 명/제약 조건 명 변경 등을 할 수 있음DROP데이터베이스 객체를 삭제하는 구문 1. ALTER컬럼 추가ALTER TABLE DEPT_COPYADD (CNAME VARCHAR2(20)); 컬럼 수정ALTER TABLE DEPT_COPYMODIFY DEPT_ID CHAR(3)MODIFY DEPT_TITLE VARCHAR(30)MODIFY LOCATION_ID V..

BackEnd/MySQL 2024.09.17

[DB] DDL(Data Definition Language) CREATE

▶ DDL(Data Detinition Language) - 데이터 정의 언어- 데이터 정의 언어로 객체(OBJECT)를 만들고(CREATE), 수정하고(ALTER), 삭제(DROP)하는 구문을 말함 1) CREATE - 테이블이나 인덱스, 뷰 등 데이터베이스 객체를 생성하는 구문- 테이블로 생성된 객체는 DROP 구문을 통해 제거 할 수 있음   ※ 테이블이란? 행(row)과 열(column)으로 구성되는 가장 기본적인 데이터베이스 객체  (데이터 배이스 내에서 모든 데이터는 테이블을 통해서 저장된다.) NUMBER 숫자형(정수, 실수) CHAR(크기) "고정" 길이 문자형 (2000BYTE)   ex) CHAR(10) 컬럼에 'ABC' 3BYTE 문자열만 저장해도 10BYTE 저장공간을 모두 사용. ..

BackEnd/MySQL 2024.08.25

[DB] DML (Data Manipulation Language)

▶ DML(Data Manipulation Language)- 데이터 조작 언어로 테이블에 값을 삽입(INSERT), 수정(UPDATE), 삭제(DELETE)하는 구문을 말함- SELECT도 DML에 포함되긴 하지만 DQL이라는 것으로 분리해서 보기도 한다!!   → DQL(Data Query Language : 데이터 질의 언어)  ▷ INSERT 테이블에 새로운 행을 추가하여 테이블의 행 개수를 증가시키는 구문▷ INSERT ALL INSERT 시 서브쿼리가 사용하는 테이블이 같은 경우 두 개 이상의 테이블에 INSERT ALL을 이용하여 한 번에 삽입 가능 단, 각 서브쿼리의 조건절이 같아야 함   ▷ UPDATE 테이블에 기록된 컬럼의 값을 수정하는 구문으로 테이블의 전체 행 개수에는 변화가 없음..

BackEnd/MySQL 2024.08.25

[DB] SUBQUERY(서브쿼리)

▶ SUBQUERY(서브쿼리) SELECT 문장 안에 포함된 또 다른 SELECT 문장으로 메인 쿼리가 실행되기 전 한 번만 실행됨 비교 연산자의 오른쪽에 기술해야 하며 반드시 괄호로 묶어야 함 서브쿼리와 비교할 항목은 반드시 서브쿼리의 SELECT한 항목의 개수와 자료형을 일치시켜야 함 ▶ 서브쿼리 유형단일행 서브쿼리서브쿼리의 조회 결과 값의 개수가 1개인 서브쿼리다중행 서브쿼리서브쿼리의 조회 결과 값의 행이 여러 개인 서브쿼리다중열 서브쿼리서브쿼리의 조회 결과 컬럼의 개수가 여러 개인 서브쿼리다중행 다중열 서브쿼리서브쿼리의 조회 결과 컬럼의 개수와 행의 개수가 여러 개인 서브쿼리상(호연)관 서브쿼리서브쿼리가 만든 결과 값을 메인 쿼리가 비교 연산할 때 메인 쿼리 테이블의 값이 변경되면 서브쿼리의 결과..

BackEnd/MySQL 2024.08.25

[DB] JOIN

▶ JOIN 하나 이상의 테이블에서 데이터를 조회하기 위해 사용하고 수행 결과는 하나의 Result Set으로 나옴 오라클ANSI등가 조인내부 조인(INNER JOIN), JOIN USING / ON + 자연 조인(NATURAL JOIN, 등가 조인 방법 중 하나)포괄 조인왼쪽 외부 조인(LEFT OUTER), 오른쪽 외부 조인(RIGHT OUTER) + 전체 외부 조인(FULL OUTER, 오라클 구문으로는 사용 못함)자체 조인, 비등가 조인JOIN ON카테시안(카티션) 곱CARTESTIAN  PRODUCT교차 조인(CROSS JOIN)  오라클 전용 구문  ANSI 표준 구문 FROM절에 쉼표(,) 로 구분하여 합치게 될 테이블명을 기술하고 WHERE절에 합치기에 사용할 컬럼명을 명시- ANSI는 미..

BackEnd/MySQL 2024.08.25