본문 바로가기

Database14

저장 객체 저장 객체SQL은 비절차적(선언형) 언어로, 원하는 결과는 명시하지만 어떻게 처리할지는 직접 제어하지 못함.이 한계를 보완하기 위해 절차형 구조(조건문, 반복문 등)를 포함한 저장 객체가 도입됨.저장 객체는 데이터베이스 내부에 저장되어, 자주 사용하는 로직을 모듈화하고, 실행 효율성과 보안성을 높여주는 요소.주요 저장 객체 유형저장 프로시저 (Stored Procedure)복잡하거나 반복적인 SQL 명령문을 하나의 객체로 정의하여 호출 가능CALL로 실행, 결과 반환 없이 작업 수행함수 (Function)연산 결과를 RETURN 문으로 반환하는 저장 객체SELECT 문에 포함되어야 호출 가능, 하나의 반환값트리거 (Trigger)특정 테이블에 대해 INSERT, UPDATE, DELETE 이벤트 발생 시.. 2025. 4. 16.
정규화 1. 정규화란?정규화(Normalization)는 데이터베이스 설계 과정에서 데이터의 중복을 줄이고, 데이터 삽입/삭제/수정 시 발생할 수 있는 이상(anomaly)을 방지하기 위해 릴레이션(테이블)을 구조적으로 재구성하는 과정입니다.동일한 정보를 담는 릴레이션 스키마라도 속성 구성 방식에 따라 성능과 정확성에 큰 차이가 발생할 수 있습니다.정규화는 데이터베이스의 효율성, 일관성, 유지보수성을 확보하는 핵심 설계 기법입니다.2. 정규화의 필요성정규화는 다음과 같은 갱신 이상(Update Anomaly) 문제를 해결:삽입 이상데이터를 삽입하려 해도 불필요한 다른 정보도 함께 입력해야 하는 문제삭제 이상일부 데이터를 삭제하면 원하지 않는 다른 정보까지 함께 삭제되는 문제수정 이상하나의 데이터 변경을 위해 여.. 2025. 4. 16.
SQL(4) 1. 중첩 질의(Subquery)란?하나의 SQL 문 안에 또 다른 SELECT 문이 포함된 것보통 괄호 () 안에 작성메인 쿼리가 서브쿼리(=중첩 질의)의 결과를 사용WHERE, FROM, SELECT, HAVING 절 등 다양한 위치에 들어갈 수 있음2. 기본 구조SELECT 컬럼1, 컬럼2, ...FROM 테이블명WHERE 컬럼 비교연산자 (SELECT ... FROM ... WHERE ...);3. 중첩 질의 위치별 설명(1) WHERE절의 중첩 질의조건식으로 사용하는 서브쿼리→ "이 값과 같은 것", "이 목록에 포함된 것" 등구조SELECT 컬럼1, 컬럼2FROM 테이블WHERE 컬럼명 = (SELECT ... FROM ... WHERE ...);최고 점수를 받은 학생SELECT name, s.. 2025. 3. 28.
SQL(3) SELECT 전체 문법 구조SELECT [DISTINCT] 컬럼1, 컬럼2, ...FROM 테이블1 [INNER JOIN | LEFT/RIGHT OUTER JOIN] 테이블2 ON 조인 조건1 [INNER JOIN | LEFT/RIGHT OUTER JOIN] 테이블3 ON 조인 조건2 ...WHERE 조건식 [서브쿼리 가능]GROUP BY 컬럼1, 컬럼2, ...HAVING 조건식ORDER BY 컬럼1 [ASC|DESC], 컬럼2 [ASC|DESC], ... 데이터 정렬 — ORDER BY결과 데이터를 정렬된 순서대로 출력할 때 사용합니다.SELECT 컬럼1, 컬럼2, ...FROM 테이블명ORDER BY 정렬기준컬럼 [ASC|DESC], ...;ASC오름차순 (기본값)DESC내림차순SE.. 2025. 3. 28.
SQL(2) DML(데이터 조작 언어)실행 즉시 방영되는 영구적 변경을 위한 명령어의 집합이 아니며 복구가 가능(설정에 따라 복구가 불가능 할 수 있다.)1. INSERT 문 — 데이터 삽입테이블에 새로운 데이터를 추가기본 문법INSERT INTO 테이블명 (컬럼1, 컬럼2, ...)VALUES (값1, 값2, ...);예시INSERT INTO Student (id, name, age)VALUES (1, '철수', 20);모든 컬럼 순서대로 값을 넣을 경우 컬럼 생략 가능:INSERT INTO Student VALUES (2, '영희', 22);INSERT INTO ... VALUES ...는 우리가 직접 값을 써서 삽입하는 방식이고,INSERT INTO ... SELECT ... 문은 다른 테이블의 검색결과를 기반.. 2025. 3. 28.
SQL(1) 1. SQL 명령어의 종류DDLData Definition Language데이터베이스 구조를 정의하거나 변경하는 언어DMLData Manipulation Language데이터를 조작하는 언어 (조회, 삽입, 수정, 삭제)DCLData Control Language데이터베이스에 대한 권한 제어와 보안 관리2. DDL (데이터 정의 언어)데이터베이스 객체를 생성/변경/삭제할 때 사용주요 객체스키마(Schema) = 데이터베이스(DB)테이블(Table) = 실제 데이터 저장 구조뷰(View) = SELECT 문 결과를 가상의 테이블처럼 사용인덱스(Index) = 검색 속도 향상시퀀스(Sequence) = 자동 번호 생성주요 명령어CREATE객체 생성CREATE TABLE, CREATE DATABASEALTER.. 2025. 3. 28.
관계형 모델 데이터베이스 모델링 및 관계형 모델1. 데이터베이스 모델링 과정데이터베이스 모델링은 사용자의 요구 사항을 분석하여 데이터를 구조화하고 최적화된 데이터베이스를 설계하는 과정이다.1.1 데이터베이스 모델링 과정 단계사용자 요구 분석 (데이터 및 업무 분석)데이터와 관련된 업무 흐름을 분석하여 데이터 요구사항을 파악데이터베이스 모델링을 위한 기초 자료 수집개념적 데이터 모델링 (Conceptual Data Modeling)ER 모델(Entity-Relationship Model)을 이용하여 데이터의 개념적인 구조를 표현개체(Entity), 속성(Attribute), 관계(Relationship) 정의데이터의 일반적인 개념을 다루며, DBMS에 독립적논리적 데이터 모델링 (Logical Data Modeling.. 2025. 3. 14.
데이터 베이스 모델링 1. 데이터베이스 모델링 개요데이터베이스 모델링은 데이터의 의미를 파악하고, 데이터와 관련된 업무 프로세스를 개념적으로 정의하고 분석하는 작업이다.비즈니스 모델에서 필요한 데이터를 체계적으로 구조화하여 데이터베이스에 저장하고 활용할 수 있도록 모델링하는 과정이다.1.1 데이터 모델데이터 모델은 데이터의 의미, 타입, 연산 등을 명시하는 개념적 표기법의 집합이다.이를 통해 데이터를 효율적으로 저장하고 활용할 수 있도록 한다.1.2 데이터 모델링데이터 모델링은 비즈니스에서 요구하는 실세계의 다양한 형태의 데이터를 DBMS에서 효율적으로 저장할 수 있는 구조로 변환하는 과정이다.이를 위해 다음과 같은 단계를 거친다.1.3 데이터베이스 모델링 과정사용자 요구 분석데이터를 다룰 업무 및 데이터의 특성을 분석요구사.. 2025. 3. 14.
데이터베이스 개요 1. 데이터베이스의 역할데이터베이스는 데이터를 체계적으로 저장하고 관리하여 사용자의 요구에 따라 정보를 제공하는 시스템이다.데이터 중복을 최소화하고, 데이터 무결성과 일관성을 보장다중 사용자가 데이터를 공유하고 동시 접근 가능데이터를 안전하게 저장하고 보안 관리 가능2. 데이터 단위데이터의 크기는 다음과 같은 단위로 구분된다.단위 크기bit데이터의 최소 단위 (0 또는 1)byte (B)8bit (한 개의 문자)kilobyte (KB)1,024 bytemegabyte (MB)1,024 KBgigabyte (GB)1,024 MBterabyte (TB)1,024 GBpetabyte (PB)1,024 TBexabyte (EB)1,024 PBzettabyte (ZB)1,024 EByottabyte (YB)1,0.. 2025. 3. 5.