Database 12

[SQL튜닝] Ch01. SQL 처리 과정과 I/O

SQL 파싱과 최적화SQL 특징 ⭕ 암기 구조적 집합적 선언적 select * from s_emp cf. 람다 스트림 - 명령적 for( s_emp) print 선언과 명령의 차이 선언적 : 어떤 데이터를 가져올지만 명시 명령적: 어떤 데이터(what)를 어떻게(how) 가져올지 명시 SQL 최적화 ⭕ 암기SQL을 실행하기 전에 진행됨 SQL 파싱 SQL 파싱 트리 생성 SQL 최적화 통계 정보 바탕으로 가장 효율적인 방법 선택 로우소스 생성 실행 경로를 실행 가능한 코드 or 프로시저로 변환 최적화 종류 Rule Base 안씀 Cost Base 통계기반 실행 계획통계 정보로..

Database 2025.05.18

[Modeling] Ch03. 논리 모델링

데이터 모델링의 설계 단계의 논리적 모델링에 대해 다루겠다. 논리적 모델링의 핵심 키워드 및 암기 사항- 논리적 모델링 특징 : 업무적 상세함- 엔티티 정의 : 엔티티 종류 5개, 행위 엔티티 유형 4가지, 이력 엔티티의 관리 분류 기준,- 관계 정의 : 관계 종류 -2, 관계 중요 구성 -3- 속성 정의 : PK 특성 4가지, PK, FK 정의 및 기능, 인조 식별자 사용 상황 -4 논리적 모델링엔티티 도출 및 정의 ⇔ Class관계 도출 및 정의 ⇔ Relationship속성 도출 및 정의 ⇔ iv ( iv의 타입, 이름, 제약조건)특징명확, 구체적시스템 측면에서 명확하다cf. 개념 모델링 : 개략, 업무 중심이기 때문.개념 모델링과 논리 모델링 사이를 계속 왔다갔다 함.엔티티 도출 및 정의핵심..

Database 2025.05.18

[Modeling] Ch02.개념 모델링

데이터 모델링 전과정 ⭕ 암기 분석현행 분석 AS IS (있는 그대로)현행 업무 분석현업 담당자와 협업 (우선)문서 ex. 업무 지침서, 과거 프로젝트현업 담당자와 일을 못하는 경우 문서를 통해 빠른 모델링 후 현업 담당자에게 피드백 받기현행 데이터 분석리버스 모델링(추가) 요구사항 정의현업 담당자와 인터뷰미래 계획 수립 TO BE설계 -2 개념적 모델링 -2주제 영역 정의핵심 엔티티 정의논리적 모델링 -3엔티티 정의관계 정의속성 정의 (iv, 타입, 이름)구현물리적 모델링리버스 모델링 정의테이블(물리 DDL코드 )로부터 ERD(논리)를 생성하는 것.현행 분석의 업무 데이터 분석 단계의 방법논리 ← 물리논리 : 한글 컬럼. 자세함물리 : 영어 컬럼. 컬럼명이 짧고 간결.단점엔티티간 관계 파악 어려움FK..

Database 2025.05.12

[Modeling] Ch01. 데이터 모델링 이론

데이터 모델링데이터 모델을 만드는 것.실제 업무를 분석해서 테이블을 그루핑하고 테이블과 관계를 맺어주기실제 업무를 본뜻 것데이터 모델그룹화 (테이블) iv관계 (Relationship) 줄긋기모델링모델을 만드는 것 모델실제(업무)를 관찰하여 본떠 만든것진짜가 아닌 이상적, 가상적인 것.ex. 패션 모델, 모델 하우스, 프라모델OOP와 유사.관찰 분석(개념 설계) → 설계(논리 설계) → 구현(물리 설계)개념설계 : 업무 분석 (개념 모델링)논리 설계 : 이상적 설계모든지 가능하다고 판단하고 이상적으로 설계물리 설계 : 현실적 설계개념 설계, 논리 설계가 중요. 물리설계는 기술적 요소 고려해야함.DB 모델링설계테이블관계Table(그룹)을 설계그룹(테이블)을 만들고 관계를 맺어줌데이터모델 종류개체 관계 모델..

Database 2025.05.12

[Database] Ch10.Dictionary

Dictionary정의관리 데이터테이블로 존재함. 뷰와 테이블 정보 주석으로 설명메타 정보 . 데이터의 데이터저장되는 정보 : View (Read Only) + Tableoracle server 사용자명허가된 권한 role, privilege객체명( table, sequence, view, index 등)감사 정보어느 테이블에 누가 무엇을 했는지 동작 기록테이블 제약조건 constraint테이블 정보와 따로 저장됨오라클이 sys.con$ 테이블에 실제 제약조건 저장함. ( $ 시스템 테이블임을 구분하기 위해 붙임)사용자가 직접 sys.con$ 테이블에 접근할 수 없고, 뷰를 통해 user_constraints 을 통해 확인가능-- 사용자의 제약정보 select * from user_constraints;..

Database 2025.05.11

[Database] Ch11.DDL 데이터 정의어

DDL저장 구조에 대한 명령어DB 구조 명령어DROP테이블 삭제자동 commit 되어 롤백 불가.인덱스까지 삭제됨표현 drop table 테이블명 [cascade constraints] ;cascade constraints 옵션삭제하고자 하는 테이블(A)을 참조하는 다른 테이블(B)의 제약조건을 삭제함A의 PK가 B의 FK로 존재cascade 옵션 있을 때, 자식 테이블에 데이터 삽입 시 부모 테이블의 PK 컬럼이 가진 데이터가 아니어도 삽입 가능A (부모) 테이블이 삭제 되었기 때문.데이터 유무와 무관하게, FK 제약조건 자체가 DROP을 막는다. 제약조건이 있을 때, 자식 테이블에 데이터가 없어도 부모 테이블 삭제 불가.제약조건이 메타 데이터로 존재함.ALTER - 4테이블에 컬럼 추가표현 alter..

Database 2025.05.11

[Database] Ch09. Transaction Control

트랜잭션 TransactionSQL을 여러개 묶어 놓은 것함께 수행되어야 하는 논리적인 업무의 작업 단위ex. 계좌 이체 ( 출금 sql, 입금 sql 로 구성)특징all or nothing트랜잭션 내의 모든 sql문이 성공해야 commit이 되고 그렇지 않으면 트랜잭션의 맨처음 sql 문으로 이동트랜잭션에 많은 sql문이 있는 경우 (작업 단위가 큰 경우) saverpoint를 두고, savepoint 까지만 rollboack(취소)할 수 있음.라이프 사이클 과정트랜잭션 시작DDL, DCL 문이 실행되면 begin transaction 없이도 암묵적으로 트랜잭션 시작트랜잭션 종료 commit, rollbackcommit, rollback 호출해야 트랜잭션이 종료. 리소스 해제됨.DDL, DML 차이 :..

Database 2025.05.06

[Database] Ch08. Constraint 제약조건

제약조건 Constraint사용 이유 ⭕데이터 보호, 데이터 무결성(integrity)을 유지하기 위해 제약 조건이 필요데이터 보호 : DB에 잘못된 데이터가 들어가는 것을 막음 ex. [ JAVA ] 캡슐화if문으로 무결성을 체크함.종류 - 5 ⭕ 암기PK = NOT NULL + UNIQUEUNIQUE 여러 행이 같은 컬럼 혹은 같은 컬럼 조합에 대해 같을 값을 가지는 걸 막음. 단, NULL값을 여러 행이 가져도 됨.FKCHECK (조건)사용자 정의 조건 [참고 ] ORACLE Contraint -5 정리특징데이터 사전에 제약조건 저장됨제약 조건 이름은 한 사용자에서 중복 불가특성무결성 integrity데이터 결함이 없음.cf.영속성 persistent한번 저장한 데이터가 유지되는 것. DB 쓰는 이..

Database 2025.05.05

[Database] Ch2.테이블 생성 및 데이터 조작(DML) Ch3.데이터검색 Ch4. Stored Function

데이터 타입VARCHAR 가변 문자열 cf.VARCHAR2 는 안씀CHAR 고정 문자열. 1~ 2자리NUMBER 부동 소수점 38자리까지 NUMBER(p,s)전체 자리수 (점 미포함) p 자리실수부 개수 s정수부 최대 자릿수 = p – s전체 7자리, 정수는 7 - 2 = 5자리까지만 가능. 2는 소수자리 개수. 정수만 7자리 전체 쓸 수 없음.ex. NUMBER(7,2)음수 저장 가능DATE 날짜.시간 : 연속적, 정수DB 저장 시 정수형태로 저장됨. 사람이 읽을 떄만 쪼개서 사용함.LONG 큰 TextRAW LONGRAW 큰 Binary SQL 명령어 종류Data Retrieve 데이터 검색 조회SELECT ReadDML은 Write만 가능한 것Data Manipulation Language DDL ..

Database 2025.05.04

[Database] Ch01. Introduction (SQL의 정석)

SQL데이터베이스에 요청할 때 사용하는 자연어가 아닌 언어.Structured 구조화 되어있다. = 문법이 있다. 자연어가 아니다.Query 질의Language 언어. 자연어 아님자료구조(링크드리스트)에서 발전된것이 데이터베이스RDB 관계형- 데이터끼리 관계를 맺어줌이유: 중복제거를 위해 쪼갬구조Map K, V장점: 대용량 처리.단점: 순서 X → 정렬, 범위 검색 불가.→ Tree 사용발전과정DB → RDB → ORDB → NoSQL → 벡터 DB벡터 DB의 경우 데이터를 숫자로 저장(임베딩)하여 요소간 관계를 확인참고LLM은 자연어로 SQL로 질의하는것 까지만 커버함.RDB와 NoSQL기준 RDB NoSQL 정형(형태 고정)비정형(형태 비고정)활용 랭킹, 팔로잉-팔로워 RDB보완으로 같이 사용용어F..

Database 2025.05.01