| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 |
- 관계대수
- ANSI/SPARC
- 뷰
- 외부 스키마
- 데이터 정합성
- 개념 스키마
- 역정규화
- SQL
- 반정규화
- 구체화 뷰
- 정보처리기사
- 디비전
- CROSS JOIN
- with check option
- sqld
- b-tree
- 내부 스키마
- create index
- 파생 칼럼
- 데이터 독립성
- 3단계 스키마
- 데이터베이스
- CREATE VIEW
- SELF JOIN
- rollback
- 테이블 분할
- LEFT JOIN
- TRUNCATE
- 관계해석
- 파티셔닝
- Today
- Total
목록전체 글 (60)
오늘부터 공부한다
반정규화란반정규화(denormalization)는 정규화를 끝낸 테이블에 일부러 중복 데이터를 다시 넣어 조회를 빠르게 하는 작업이다.JOIN과 집계를 줄이는 대신 같은 값이 여러 곳에 생겨서, 쓰기가 느려지고 값이 서로 어긋날 수 있다.분류기법쇼핑몰 예시칼럼 반정규화중복 칼럼 추가orders에 회원 이름(member_name) 복사파생 칼럼 추가orders에 주문 합계(total_price) 저장테이블 반정규화테이블 병합members와 1:1인 member_profiles를 합침테이블 분할 (수직, 수평)큰 칼럼을 떼어 내거나 주문을 연도별로 나눔테이블 추가일별 매출 통계 테이블관계 반정규화중복 관계 추가deliveries에서 members로 바로 가는 member_id분류는 국내 SQLD 정리 글들이..
인덱스와 뷰란인덱스와 뷰는 둘 다 테이블 위에 따로 만드는 데이터베이스 객체다.인덱스는 데이터를 빨리 찾으려고 만드는 저장 구조이고, 뷰는 SELECT 문 하나에 이름을 붙여 테이블처럼 쓰는 가상 테이블이다.구분인덱스뷰저장하는 것열 값과 행 위치를 정렬한 구조SELECT 문 정의만 (데이터는 없음)쓰는 이유조회 속도쿼리 단순화, 보안3단계 스키마내부 스키마외부 스키마만들기CREATE INDEXCREATE VIEW지우기DROP INDEXDROP VIEW대가INSERT, UPDATE, DELETE가 느려진다조건에 따라 INSERT, UPDATE가 안 된다예전 "3단계 스키마" 글에서 인덱스는 내부 스키마, 뷰는 외부 스키마로 나눴는데, 이 글은 그 두 객체를 하나씩 본다.예시도 그 글과 같은 쇼핑몰 회원(m..
3단계 스키마란3단계 스키마는 데이터베이스를 사용자가 보는 층, 전체 구조를 정하는 층, 디스크에 저장되는 층으로 나눈 구조다.1975년 ANSI/X3/SPARC 연구 그룹이 내놓아서 ANSI/SPARC 3단계 구조라고도 부른다.스키마관점정하는 것개수대응하는 객체외부 스키마사용자, 응용 프로그램각자 필요한 데이터만 골라 보는 모습여러 개뷰(VIEW)개념 스키마조직 전체 (DBA)모든 데이터, 데이터끼리의 관계, 제약조건하나테이블, 키, 제약조건내부 스키마저장 장치레코드를 디스크에 어떻게 담고 찾을지하나인덱스, 데이터 파일, 저장 위치층을 나누는 이유는 데이터 독립성이다.아래 층을 바꿔도 위 층은 그대로 쓸 수 있게 하려는 것이다.ANSI-SPARC 3단계 구조 그림. 위에서부터 외부 단계의 사용자 뷰 여..
SQL 명령어 분류SQL 명령어는 하는 일에 따라 DDL, DML, DCL, TCL 네 가지로 나눈다.테이블 구조를 만들면 DDL, 데이터를 다루면 DML, 권한을 주면 DCL, 트랜잭션을 끝내면 TCL이다.분류이름하는 일명령어DDL데이터 정의어 (Data Definition Language)테이블, 뷰, 인덱스 같은 객체를 만들고 바꾸고 지운다CREATE, ALTER, DROP, TRUNCATE, RENAMEDML데이터 조작어 (Data Manipulation Language)테이블 안의 데이터를 조회하고 넣고 고치고 지운다SELECT, INSERT, UPDATE, DELETE, MERGEDCL데이터 제어어 (Data Control Language)사용자에게 권한을 주고 뺏는다GRANT, REVOKET..
관계대수 기호와 SQL 대응관계대수는 원하는 결과를 얻는 순서(어떻게)를 연산자로 적는 절차적 언어이고, 관계해석은 원하는 결과의 조건(무엇)만 적는 비절차적 언어다.시험에 나오는 관계대수 기호와 그에 맞는 SQL은 아래와 같다.기호이름하는 일SQLσ셀렉트(Select)조건에 맞는 행만 고른다WHEREπ프로젝트(Project)원하는 열만 남긴다SELECT 열 목록 (+ DISTINCT)⋈조인(Join)두 릴레이션을 공통 속성으로 잇는다JOIN ... ON, NATURAL JOIN÷디비전(Division)다른 릴레이션의 값을 모두 가진 행을 고른다전용 문법 없음 (NOT EXISTS 두 번)∪합집합두 결과를 합친다UNION∩교집합양쪽에 다 있는 행INTERSECT-차집합왼쪽에만 있는 행EXCEPT (Ora..
SQL JOIN 종류SQL JOIN은 두 테이블의 행을 조건에 맞춰 이어 붙이는 연산이다.종류는 아래 6가지다.JOIN결과에 남는 행예시 결과 행 수INNER JOIN양쪽에 짝이 있는 행만3LEFT JOIN왼쪽 전부 + 오른쪽 짝 (없으면 NULL)4RIGHT JOIN오른쪽 전부 + 왼쪽 짝 (없으면 NULL)4FULL OUTER JOIN양쪽 전부 (짝 없으면 NULL)5CROSS JOIN모든 행 조합 (N * M)6SELF JOIN같은 테이블끼리 위 JOIN 중 하나4예시는 쇼핑몰의 회원(members)과 주문(orders) 테이블로 본다.이영희는 주문이 없고, 104번 주문은 비회원 주문이라 member_id가 NULL이다. id | name----+-------- 1 | 김철수 2 | 이영희 ..
데이터베이스 키(Key)란키는 테이블에서 행(튜플) 하나를 찾아낼 수 있게 해 주는 속성이나 속성의 묶음이다. 키를 나눌 때는 두 가지 성질을 본다.유일성: 이 값으로 행이 딱 하나만 찾아진다최소성: 속성을 하나라도 빼면 유일성이 깨진다. 꼭 필요한 속성만 들어 있다아래 학생 테이블로 하나씩 본다. 학번과 주민번호는 학생마다 다르고, 이름과 학과는 겹칠 수 있다.학번주민번호이름학과2019001000101-3xxxxxx김철수컴퓨터공학2019002000315-4xxxxxx이영희컴퓨터공학2019003991120-1xxxxxx김철수경영학슈퍼키(Super Key)유일성만 만족하면 슈퍼키다.행을 하나로 찾을 수만 있으면 필요 없는 속성이 같이 붙어 있어도 된다. 학생 테이블에서는 {학번}, {주민번호}, {학번, ..
agent-desktop이란agent-desktop은 AI 에이전트가 macOS, Windows, Linux의 데스크톱 앱을 읽고 조작하게 해 주는 CLI다. Vercel Labs가 만들었고 라이선스는 Apache-2.0이다. 같은 팀의 agent-browser가 웹 브라우저를 맡는다면, 이쪽은 Finder, 메모, 계산기 같은 일반 앱을 맡는다.화면을 캡처해서 픽셀을 읽는 방식이 아니다. 운영체제가 장애인 보조 기능용으로 내놓는 접근성 트리(macOS AX API, Windows UI Automation, Linux AT-SPI)를 읽어서 버튼, 입력칸 같은 요소를 JSON으로 돌려준다. 안에 LLM은 없고, Claude Code나 Codex 같은 에이전트가 이 명령을 불러 쓰는 구조다.agent-de..
