2025/09 26

sql 모델, 정규화

모델의 정의• 모델링‐ 현실세계의 다양한 현상을 일정한 규칙을 가진 표기법에 의해 표현하는 것‐ 데이터관점: 데이터와 데이터 간에 관계(WHAT)‐ 프로세스관점: 무엇을 어떻게 해야 하는가에 대한 관점(HOW)‐ 상관관점: 일이 진행되는 과정에 데이터가 받는 영향을 모델링(Interaction) • 모델링의 특징‐ 추상화: 현상의 핵심적인 부분을 일정한 형식에 맞추어 표현‐ 단순화: 복잡한 현상을 제한된 표현법으로 이해하기 쉽게 표현‐ 명확화: 불분명한 부을 제외하고 정확히 현상을 기술하는 것 정규화(Normalization) ㄴ 함수적 종속을 위해 있는 거다.정규화가 먼저 나왔고 그걸 구현하려고 RDBMS가 있는거다. • 개체 내에 함수적 종속관계와 개체간관계를 명확히 정의하는 일련의 과정. •..

카테고리 없음 2025.09.30

sql Top-N, RANK, Sequence

TOP-N 분석 • 정렬된 결과의 일부를 검색하는 방법은 다양하지만 가장 기본적인 방법은인라인 뷰를 이용하는 것이다.• 인라인뷰를이용하는이유는SQL문에서정렬이가장마지막에수행되기때문이다. SELECT ROWNUM, [컬럼, 컬럼, ...]FROM (SELECT ... ORDER BY ...)WHERE ROWNUM ‐ 상/하위 N개의 행을 검색한다.‐ 인라인뷰에 반드시 ORDER BY절이 필요하다.‐ ROWNUM은 검색된 행의순서이다. 인라인뷰를 이용한 Top-N 분석 • 가장 높은 급여를 받는 3인을 검색 SELECT ROWNUM, eno, ename, salFROM (SELECT eno, ename, salFROM empORDER BY sal DESC)WHERE ROWNUM RANK()를 이용한..

카테고리 없음 2025.09.26

sql index생성, index 구조와 이해

인덱스(Index) 생성, 인덱스 구조와 이해 인덱스 = 색인 • 인덱스종류‐ 고유 고유인덱스(Unique Index), 비 고유 인덱스( Non unique Index)‐ 물리구조 B-Tree Index, bitmap Index • 인덱스생성‐ 자동생성 . PK, UK로 지정된컬럼은자동으로생성된다. . Unique Index가 생성된다.‐ 수동생성 . CREATE INDEX 명령을 통해 직접 생성한다. . Non unique Index 가 생성된다. . FK 컬럼에반드시생 성한다. 데이터가 너무 많으면 사용 안 한다. Index 생성과 삭제 CREATE INDEX 인덱스ON 테이블 (컬럼 | 함수 | 수식); DROP INDEX 인덱스; 인..

카테고리 없음 2025.09.25

sql UK, NOT NULL, CHECK, 제약조건 추가,삭제,활성화,비활성화

row_id 행이 저장되어 있는 물리적인 위치row_num 내가 읽어드리는 행의 개수(풀 테이블스캔할 때 주로 사용한다.) 행을 읽는 방법은 2가지 밖에 없다.full table scan → 테이블의 행을 처음부터 끝까지 읽는 것.(행을 전부 읽는 것(block단위로 읽는다.))index scan → pk를 복사해서 정렬을 해둔다. index scan이 더 빠르다. 제약조건 2 UK, NOT NULL, CHECK UK(Unique Key), NOT NULL 설정ㄴ 중복 안되게 해 주는 거. ㄴ 돈과 관련된 컬럼들CREATE TABLE 테이블 (.....CONSTRAINT 제약_조건 UNIQUE (컬럼)); CREATE TABLE 테이블 (컬럼 데이터_타입 CONSTRAINT..

카테고리 없음 2025.09.24

sql ddl,pk,fk

글자가 저장되는 데이터 타입 = varchar2()날짜가 저장돼있는 데이터 타입 = date()숫자가 저장되어 있는 데이터 타입 = number()뒤에 괄호는 바이트수를 나타낸다. ddl create table로 만들면 alter table로 지운다. • DDL(Data Definition Language)‐ CREATE → create로 만든 거만 무조건 alter로 구조를 고칠 수 있다. 지우려면 drop으로 지운다.‐ ALTER‐ DROP‐ RENAME → 오브젝트 이름을 바꿈.(사용할 일 없다.)‐ TRUNCATE → 테이블 안을 비워라는 말임.세그먼트가 아닌 애들은 존재 안 함. 공간을 할당받으면 안 써도 가지고 있는다. delete로 지워도 공간을 가지고 있는다.truncate는 테이블 지..

카테고리 없음 2025.09.23

sql DML 과 TCL, Transaction과 Lock

INSERT INTO [(컬럼, 컬럼, ... )] VALUES (값, 값, ...); UPDATE 테이블 SET 컬럼 = 값, 컬럼 = 값, ... [WHERE 조건]; - 행단 위. 여러 개 or 하나의 컬럼 - 특정 컬럼의 데이터를 변경할 수 있다 DELETE FROM 테이블 [WHERE 조건];- 테이블의 데이터를 횡단 위로 삭제한다 COMMIT;- 트랜잭션(단위 작업) - COMMIT 하면 트랜잭션이 완료된다. - 모든 명령은 즉시 동작한다 ROLLBACK;- undo segment에 insert, delete 한 내용을 저장한다. ROLLBACK 하면 undo segment에 내용을 기반으로 명령을 취소한다 테이블에 데이터를 삭제하고 TCL을 통해 결과를 확인한다. SQL> SEL..

카테고리 없음 2025.09.22

sql group by, having

sql문은 이걸 거쳐서 실행이 된다. ParsingSyntax 검사 → 문장 검사(잘못 썼으면 다음 단계로 안 간다.)Semantics 검사 → 테이블이 실제로 있는지 확인, 테이블 안에 컬럼이 있는지 확인하는 단계.(없으면 담단계로 안감.)실행 계획(Exectuion Plan) → 이 문장을 어떻게 실행할지 계획하는 단계.(컴파일하는 거랑 비슷함.)ㄴ 똑같은 문장이면 기존에 실행했던 문장인지 비교함.(해쉬코드로 저장된 놈이랑 비교해서 확인함.)실행패치 그룹함수와 GROUP BY 그룹함수 • 여러 행에 컬럼을 기반으로 계산된 값을 제공하는 다중행 함수를 의미한다.ㄴ 테이블에 있는 행을 합쳐서 데이터를 뽑아냄.(행의 개수랑 상관없음.)(값이 하나만 나옴.)ㄴ 평균값, 표준편차 등등 ‐그룹함수에서 ..

카테고리 없음 2025.09.19