2025/02/19 11

13. SQL 작성 (select / order_by / where / distinct)

SELECT# SELECT FROM 연습use menudb; -- 1. 테이블을 사용할 수 없기 때문에 접근허용 해주기# 단일 컬럼 조회SELECT menu_name FROM tbl_menu;# 다중 컬럼 조회SELECT menu_code, menu_name, menu_price, category_code, orderable_status -- 2. 모든 컬럼은 *로도 표현할 수 있다 (하지만 현업에서는 지양하는 바이다. 기능을 모르니까) FROM tbl_menu;# 연산자나 now 함수도 사용가능하다 / (Oracle에서는 금지. 연산자 사용을 위해서는 FROM DUAL을 사용해야 한다)SELECT 12 + 17;SELECT 12 - 17;SELECT 12 * 17;SELECT 12 / 17;SE..

SKN/02. DB 2025.02.19

04. 개념/논리/물리 모델

1. 개념 모델01. 개념 모델이란?요구분석 단계에서 정의된 핵심 엔터티와 주요 속성을 도출하고 관계를 도출하여 ERD를 생성하는 단계이다데이터의 범위나 구조를 용이하게 파악할 수 있는 상위 수준의 ERD 형태이다02. 개념 모델의 목적요구 사항을 이해관계자들이 이해할 수 있도록 데이터로 간결하게 표현하는 것이다.대규모 프로젝트에서 개발자가 업무의 큰 틀을 잡는 데 도움을 준다.개발 프로젝트 뿐 아니라 시스템의 유지, 보수에 있어서도 유용하게 사용할 수 있다.03. 개념 모델의 주의사항이해 관계자들 사이에서 해석이 다르지 않도록 정확한 의사소통을 해야 한다.개념 모델에서는 데이터만을 대상으로 표현해야 한다.논리 모델링 기간의 1/3 정도에 해당하는 기간을 소요해서라도 의사소통을 하자2. 논리 모델01. ..

SKN/02. DB 2025.02.19

12. 백업 및 복원

-- 수업시간에 다루지 않은 내용이라 기록만 하겠다 --1. 백업💡백업(Backup)은 데이터 손실에 대비하여 현재의 데이터베이스 상태를 저장하는 과정이며, **복원(Restore)**은 백업된 데이터를 사용하여 데이터베이스를 이전 상태로 복구하는 과정이다.MySQL에서 백업과 복원은 데이터의 무결성과 지속성을 보장하는 데 필수적이며, 시스템 장애, 사용자 실수 또는 기타 예기치 않은 상황에 대비할 수 있도록 해준다. 01. 백업의 종류논리적 백업(Logical Backup)데이터베이스의 구조와 데이터를 SQL 문장으로 덤프하여 저장하는 방법이다.mysqldump 유틸리티를 사용한다.이식성이 높고 특정 데이터만 백업 가능한 장점이 있지만, 대용량 데이터의 경우 시간이 오래 걸린다.물리적 백업(Physi..

SKN/02. DB 2025.02.19

11. STORED PROCEDURE / Trigger

* 수업시간에 다루지 않은 내용이므로, 개요와 장점만 다루겠다.1. STORED PROCEDURE01. Stored Procedure 개요💡 Stored Procedure(저장 프로시저)는 미리 컴파일되어 데이터베이스에 저장된 SQL 문의 집합으로, 프로시저라고도 불린다. 복잡한 작업을 하나의 프로시저로 만들어 필요할 때마다 호출할 수 있으며, 코드의 재사용성과 유지보수성을 높여준다. Stored Procedure는 데이터베이스 성능 향상과 보안 강화에 도움이 되며, 클라이언트와 서버 간의 네트워크 트래픽을 감소시킨다.   02. Stored Procedure 장단점장점복잡한 SQL 작업을 프로시저로 만들어 여러 곳에서 재사용 가능하다.미리 컴파일되어 저장되므로 실행 속도가 빠르다.데이터베이스 액세스 ..

SKN/02. DB 2025.02.19

10. VIEW

1. VIEW💡SELECT 쿼리문을 저장한 객체로 가상테이블이라고 불린다. 실질적인 데이터를 물리적으로 저장하고 있지 않고 쿼리만 저장했지만 테이블을 사용하는 것과 동일하게 사용할 수 있다. VIEW는 데이터를 쉽게 읽고 이해할 수 있도록 돕는 동시에, 원본 데이터의 보안을 유지하는데 도움이 된다.  01. VIEW 생성# view 생성 후 조회SELECT * FROM tbl_menu;-- VIEW 생성CREATE VIEW hansik ASSELECT menu_code, menu_name, menu_price, category_code, orderable_statusFROM tbl_menu WHERE category_code = 4;-- 생성된 VIEW 조회SELECT * FROM hansik;#..

SKN/02. DB 2025.02.19

09. INDEX

💡 인덱스(Index)는 데이터 검색 속도를 향상시키는 데이터 구조로 데이터를 빠르게 조회할 수 있는 포인터를 제공한다. 데이터베이스에서 데이터를 찾을 때 전체 테이블을 검색하는 대신 인덱스를 통해 검색을 하므로 속도가 더 빨라진다. 인덱스는 주로 WHERE절의 조건이나 JOIN 연산에 사용되는 컬럼에 생성한다. 다만 인덱스도 데이터 저장 공간을 차지하고 데이터가 변경될 때마다 인덱스 역시 갱신해야 하기 때문에 어떤 컬럼에 인덱스를 생성할지는 신중히 결정해야 한다.  1. 인덱스 생성[인덱스 생성]# PRIMARY KEY 제약 조건을 지닌 기본 테이블 생성 후 기본 데이터 INSERT 후 조회CREATE TABLE phone ( phone_code INT PRIMARY KEY, phone_n..

SKN/02. DB 2025.02.19

08. CONSTRAINTS

💡CONSTRAINT는 제약조건으로 테이블에 데이터가 입력되거나 수정될 때의 규칙을 정의한다.     데이터 무결성을 보장하는데 도움이 된다. 1. NOT NULL NULL값을 허용하지 않는 제약조건 # 제약조건 확인용 테이블 생성 및 테스트 데이터 INSERT 후 조회하기DROP TABLE IF EXISTS user_notnull;CREATE TABLE IF NOT EXISTS user_notnull ( user_no INT NOT NULL, user_id VARCHAR(255) NOT NULL, user_pwd VARCHAR(255) NOT NULL, user_name VARCHAR(255) NOT NULL, gender VARCHAR(3), phone VARCHAR..

SKN/02. DB 2025.02.19

07. DDL(Data Definition Language)

💡 DDL(Data Definition Language)는 데이터베이스의 스키마를 정의하거나 수정하는 데 사용되는 SQL의 한 부분이다. 1. CREATE테이블 생성을 위한 구문IF NOT EXISTS를 적용하면 기존에 존재하는 테이블이라도 에러가 발생하지 x# 테이블의 컬럼 설정 방법column_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT] column_constraint;# tb1 테이블 생성CREATE TABLE IF NOT EXISTS tb1 ( pk INT PRIMARY KEY, fk INT, col1 VARCHAR(255), CHECK(col1 IN ('Y', 'N'))) ENGINE=INNODB;..

SKN/02. DB 2025.02.19

06. 정규화

1. 정규화01. 정규화?중복 데이터를 제거하여 안정성과 확장성을 도모한다.안정성 : 함수 종속을 기반으로 데이터 성격에 맞는 엔터티가 도출확장성 : 데이터의 정체성이 그대로 반영되어 업무 변경이 반영되기 수월해진다02. 함수 종속속성 X의 값을 이용해 속성 Y의 값을 유일하게 식별 O / X에 대해 하나의 Y가 연관릴레이션 내에 존재하는 속성 간의 종속성결정자와 결정자의 값에 의해 유일하게 식별되는 값을 종속자 라고 한다.대표 속성이 나머지 속성을 유일하게 식별할 수 있다면, 대표 속성과 나머지 속성 사이에는 연관 관계가 성립한다. 이를 함수 종속이라고 한다.2. 정규화 종류1 정규형 => 도메인 값 제거모든 속성은 반드시 하나의 값을 가져야 한다. (속성은 원자값을 지녀야 한다.)다가 속성(Multi..

SKN/02. DB 2025.02.19

05. 이상(Anomaly)

이상?중복된 데이터 때문에 의도하지 않은 현상이 발생되는 것 (삽입 이상, 갱신 이상, 삭제 이상) 01. 삽입 이상릴레이션에서 새로운 인스턴스를 삽입할 때 발생하는 데이터 이상 현상불필요한 정보를 저장해야만 어떤 정보를 저장하는 것이 가능할 때인스턴스 삽입 시 기존의 상품이라도 상품번호, 상품명, 단가를 모두 추가해 주어야 한다.주문이 아닌 상품을 추가하기 위한 인스턴스 추가일 경우 주문번호나 주문 수량이라는 불필요한 속성의 값도 추가하여야 한다. 02. 갱신 이상릴레이션에서 속성의 값을 업데이트할 때 발생하는 데이터 이상 현상반복된 데이터 중에 일부만 수정하면 데이터의 불일치가 발생한다.속성 값들이 변경될 경우 상품을 모두 수정해주어야 한다.03. 삭제 이상릴레이션에서 인스턴스를 삭제할 때 발생하는 ..

SKN/02. DB 2025.02.19