| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- Binary Lifting
- 트라이
- 게임 서버 아키텍처
- 벨만-포드
- Delete
- 그래프 탐색
- Overlapped Model
- Prisma
- 자바스크립트
- JavaScript
- 2-SAT
- reference counting
- Strongly Connected Component
- PROJECT
- Spin Lock
- 이분 탐색
- DP
- Lock-free Stack
- Github
- 비트마스킹
- select 모델
- trie
- 비트필드를 이용한 dp
- map
- SCC
- ccw 알고리즘
- HTTP
- Behavior Design Pattern
- 강한 연결 요소
- 최소 공통 조상
- Today
- Total
목록Database (14)
dh_0e
Bad Schemacourse 테이블과 department 테이블이 합성된 아주 나쁜 스키마deptName을 기준으로 자연 조인 연산을 한 테이블이 나옴Three anomalies (이상현상)Update anomalydept의 정보를 고치려면 n번 고쳐야 함ex) 'CS' 학과의 chairman이 바뀌었다면 3번 고쳐야 함Delete anomaly수업을 없앴을 때 dept 정보가 모두 날아갈 수 있음ex) 222, 223 수업을 삭제하면 'Media' 과의 정보가 날아감Insert anomaly새로운 dept 신설 시 과목이 없으면 삽입 불가능ex) 'CE' 과가 신설돼도 과목이 없어서 데이터 삽입 불가능course 테이블과 room 테이블이 합성된 아주 나쁜 스키마course 정보와 room 정보는 전..
Entity-Relationship Data ModelER 데이터 모델은 DB를 개체와 관계로 모델링함 (+속성 Attribute)ER 데이터 모델의 모델링 원소는 개체와 관계이며, 두 개 모두가 특성으로 속성만 가짐 Entity / Entity Set (Entity Type)개체란 구별이 가능한 객체를 의미하며, 데이터베이스에 저장/관리하고자 하는 어떤 객체도 개체가 될 수 있음위 예시에서 학번, 이름, 학년 3개의 정보가 모두 같은 학생이 오직 한 명이면 이를 Entity(개체)라 함이 개체들의 집합을 Entity Set(Entity Type)이라 하며 위 예시에선 Student, Course가 이에 해당ER 다이어그램에서 네모로 표현함 Relationship, Relationship Set (Rel..
SQL procedural extensionsSQL 표준은 SQL에 절차적인 확장을 지원하며 이를 SQL/PSM이라 하며 사용자는 이를 이용하여 데이터 베이스의 임의 연산을 수행하는 procedure(or function)를 개발할 수 있음 External Language Functions/ProceduresSQL 표준은 함수나 procedure를 외부 언어를 사용하여 개발할 수 있게 함외부언어를 사용하여 함수/procedure를 개발하는 경우 DBS 보안에 문제가 발생할 수 있음사용자가 작성한 프로그램의 오류가 DBS의 오류가 되어 심각한 문제를 야기할 수 있음즉 외부 언어를 사용하는 함수는 효율적으로 실행되어 성능향상은 기대할 수 있지만, 시스템 보안 문제로 잘 사용 X Security Issue보안..
Cursor커서가 declare 된 후, 커서 open시에 DBS에 해당 질의를 실행하여 그 결과를 임시 테이블에 저장함fetch는 임시 테이블에서 튜플을 하나씩 검색하여 호스트 프로그램 변수에 튜플 단위로 값을 전달'00000'은 성공적인 실행을 의미, '02000'은 더 이상 검색되는 튜플이 없다는 의미close로 닫아주면 끝~ 요것은 Static SQL입니다 compile time이겠죠? Dynamic SQLrun time이겠죠? ODBC, JDBCDBS에 연결하여 연산을 요청하고 이에 대한 결과를 받는 방식을 제공하는 APIODBC는 C, C++, C#, Visual Basic에서 동작, JDBC는 Java에서 동작 ODBC Data AccessSQLExecDirect() 함수를 이용하여 SQ..
LOB data typesLOB 타입은 대용량 데이터를 저장/관리하기 위해 사용됨BLOB, CLOB, NCLOB, BFILE이 있으며 BFILE을 제외한 다른 데이터 타입은 트랜잭션 성질이 지원됨BFILE은 운영체제의 파일 시스템을 이용하여 저장/관리하는 데이터 타입으로 데이터 변경이 불가능, 읽기 연산만 지원 Set operatorsOracle 시스템은 'union all'만 지원하며 'intersect all', 'minis all'은 지원하지 않음 > 최근에 생김ExceptExcept all == Minus allIntersect alldual table속성이 하나(dummy varchar2(1))이며 튜플이 하나인 sys 소유의 테이블SELECT 문장엔 반드시 from절이 있어야 하는데, date..
뷰(View)특정 사용자로부터 특정 속성(DB에 저장된 모든 실제 관계)을 숨기는 기능개념적 스키마가 아닌 사용자가 "virtual relation"로 볼 수 있는 모든 관계를 View라고 함주 목적은 데이터 보호이며, 이외에도 사용자 편리성 제공, 질의 간소화가 있음"Create view"로 정의하며 쿼리에서 일반 테이블처럼 사용할 수 있음ex)Create view v as ;- is any legal SQL expression- "v" is the view name ex) A view of professors without their salaryCreate view myProfessor asSELECT pID, name, deptNamefrom professor; 뷰는 한 개 이상의 테이블로부터 정..
Nested Subqueries(중첩 서브질의)select-from-where로 구성이 되는 서브질의를 다른 SQL 문장에 위치할 수 있음테이블이 위치하는 장소에는 중첩 서브질의 표현이 이론적으로 가능하며 보통 where절 또는 from절에 위치함where절, from절에 존재하는 경우에는 보통 집합 포함 관계, 집합 비교, 집합 원소 개수 등의 조건을 사용함 IN 연산자단일 값이 다수 값에 속하는지 검사ex) Get names and salaries of professor who has ID with 10 or 21 or 22SELECT name, slalryfrom professorwhere pID in (10, 21, 22); # == 'where pID=10 or pID=21 or pID=22;..
Database Languages functionality categrized into (기능적 분류)DDL(data definition language) - 스키마 관련 언어DML(data manipulation language) - 데이터(인스턴스) 관련 언어DCL(data control language) - 부가적 관리 언어 DBL expressed categorized into (표현되는 방식 관점)Procedural - 절차적Non-procedural (declarative) - 비절차적 DDL(data definition language)Specification for defining the database schema - 스키마에 대한 조작을 담당Specification for the dom..
관계형 데이터 모델Introdeuced by E.F. Codd (1970)Strong theoretical foundations (강력한 기초 이론) & very simpleNumerous commercial systems (수많은 상업 시스템에 이용됨)A collection of relations and integrity constraints (관계와 무결성 제약의 묶음)Relations are unordered & Order of tuples is irrelevant (관계 간에 순서나 상하관계 X) Attributes(속성)각 속성은 속성 값으로 허용할 수 있는 값의 집합인 domain(도메인)을 가짐속성 도메인에 속하는 값은 분할할 수 없는 atomic(원소성)을 지닌 값을 가짐도메인이 없는 것..
데이터베이스(DB, database)서로 연관 있는 데이터의 모임을 의미컴퓨터에 데이터베이스가 저장되어 있으면, 이를 관리하는 소프트웨어가 필요이를 데이터베이스 관리 시스템(DBMS, database management sys-tem)이라 함DB, DBMS, DBS(database system, = DB + DBMS) 용어가 상호 대체적으로 사용됨 DBMSs의 advantagesData abstraction - 데이터 추상화 제공Easy accessing data - 데이터 접근의 용의성 제공Controlled data redundancy and inconsistency - 데이터 중복 및 불일치성에 대한 제어 용이불일치성 - 데이터 간에 값이 서로 일치하지 않은 현상file system 사용 시 데이터..
로컬에 MySQL DB 만들기먼저 MySQL 공식 웹사이트에서 Community Server, Workbench를 OS에 맞게 설치한다 MySQL :: MySQL Community DownloadsThe world's most popular open source database Contact MySQL | Login | Registerdev.mysql.com 설치가 완료되면 Workbench에 자동으로 생성되었을 MySQL Connection에 비밀번호 입력 후접속해준다없다면 다음 이미지의 우측 상단 +버튼으로 Connection을 만들어 사용하면 된다.query에 다음과 같은 명령어로 DB를 생성하고 권한을 부여한다 1. 'testdb' 라는 데이터베이스를 생성CREATE DATABASE tes..
Redis란?Remote Dictionary Server의 약자로 Key-Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈소스 기반 비관계형 데이터베이스(NoSQL) 관리 시스템In-memory 기반의 데이터 처리 및 저장을 제공하여 속도가 빠르지만 서버가 꺼지면 저장된 모든 데이터가 사라짐보편적으로 데이터의 휘발성 때문에 메인 데이터베이스보다는 보조 데이터베이스로 사용함데이터에 만료 시간을 지정하여 만료 시간이 지나면 해당 데이터를 삭제하며, 메모리가 꽉 찼을 때도 LRU(Least Recently Used) 알고리즘에 의해 데이터가 사라짐 Redis 명령어아래 명령어를 통해 Key-Value 구조 데이터들을 생성/읽기/갱신/삭제할 수 있음명령어기능SET데이터 저장GET데이터 조회RENAM..
Prisma에선 PostgreSQL, CockroachDB, SQL Server에서만 다중 데이터베이스 스키마를 지원한다. How to use Prisma ORM with multiple database schemas | Prisma DocumentationHow to use Prisma ORM with multiple database schemaswww.prisma.io Prisma를 사용하여 MySQL 데이터베이스를 사용하여 과제를 진행해야하는 상황에서 2개의 데이터베이스를 다루라는 요구사항이 주어졌고, 방법을 찾아보니 정석은 아니지만 Prisma에서 다중 데이터베이스 스키마를 지원하지 않는 RDB에서도 사용할 수 있는 방법을 찾았다. // prisma/schema1.prismagenerator cl..
CRUD : Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 말 Create(생성) 1. addDoc자동 생성 ID를 사용하여 문서를 추가하는 방법import { doc, addDocs } from 'https://www.gstatic.com/firebasejs/9.22.0/firebase-firestore.js';await addDoc(doc(db, "컬렉션"), data); 2. setDocID를 지정하여 문서를 추가하는 방법 (이미 중복된 ID가 있을 경우 필드가 덮어 씌워짐)import { doc, setDoc } from "https://www.gstatic.com/firebasejs/9.22.0/firebase-firestore.js"; awa..