일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
31 |
- 디자인패턴
- 컨디션 변수
- 알고리즘
- 병행성 관련 오류
- directx
- 다이나믹프로그래밍
- 백준
- 다이나믹 프로그래밍
- 운영체제
- 쓰레드
- codility
- 타입 객체
- 자료구조
- 파일시스템 구현
- 스케줄링
- 멀티프로세서
- DirectX12
- I/O장치
- 영속성
- DirectX 12
- 멀티쓰레드
- OS
- 동적계획법
- 렌더링 파이프라인
- 락
- Direct12
- 병행성
- 그리디알고리즘
- 프로그래머스
- 그리디 알고리즘
- Today
- Total
목록분류 전체보기 (500)
기록공간
무결성이란? 데이터 무결성은 데이터의 정확성과 일관성을 유지하고 보증하는 것을 가리키며 데이터베이스나 관계형 데이터베이스 관리 시스템(RDBMS)의 중요한 기능이다. 무결성 제약조건의 종류 관계 데이터베이스의 무결성을 만족하기 위해서는 개채 무결성, 참조 무결성, 도메인 무결성 제약조건이 지켜져야 한다. 개체 무결성(Entity Integrity) 개체 무결성은 릴레이션에서 저장되는 튜플(tuple)의 유일성을 보장하기 위한 제약조건이다. 모든 테이블이 기본 키(Primary key)로 선택된 필드(Column)를 가져야 한다. 기본 키로 선택된 필드는 고유한 값을 가져야 하며, 빈 값은 허용하지 않는다. 참조 무결성(Referential Integrity) 참조 무결성은 릴레이션 간의 데이터 일관성을 ..

데이터베이스의 경우 그 구조가 잘못된 경우, 프로젝트를 다시 만들어야 할 정도로 설계가 끝나고 프로그램을 개발하는 도중에는 설계 구조의 변경이 불가능하다. 그렇기 때문에 프로젝트에서의 데이터베이스 오류를 줄이고 자원을 효율적으로 관리하기 위해서는 반드시 정규화 과정을 거쳐야 한다. 그러면 정규화란 도대체 무엇일까? 정규화란 한 마디로 데이터베이스 서버의 메모리 낭비를 막기 위해 어떤 하나의 테이블을 식별자를 가지는 여러 개의 테이블로 나누는 과정을 말한다. 정규화에는 4단계의 과정이 존재한다. 그러면 예를 들면서 어떤 과정이 있고 어떻게 정규화가 진행되는지 살펴보도록 하겠다. 제 1 정규화 예를 들어 철수가 옥장판을 판매하는데 고객 리스트를 데이터베이스화 하려고 한다 가정하자. 테이블의 데이터는 다음과 ..

JOIN은 두 개 이상의 테이블을 서로 연결하여 데이터를 검색할 때 사용하는 방법으로 두 개의 테이블을 마치 하나의 테이블인 것처럼 보여주는 것이다. JOIN의 사용 형식은 SQL 1992 CODE와 SQL 1999 CODE로 나눌 수 있다. JOIN의 예를 쉽게 설명하기 위해 직원(EMP)라는 테이블을 정의하였으며 데이터의 내용은 다음과 같다. SQL 1992 CODE CROSS JOIN CROSS JOIN은 수학에서 말하는 데카르트 곱(Cartersian Product)을 두 테이블에 수행하는 것을 뜻한다. 두 테이블을 결합하였을때 모든 경우의 수를 보여준다. SELECT * FROM EMP, DEPT; 결과는 다음과 같다. EQUI JOIN EQUI JOIN은 서로 정확히 일치하는 것들끼리 연결하여..

게시판을 만든다고 했을때, 게시판을 구분하기위해 ID를 정한다고 가정하자. 이 ID는 1부터 게시물이 생성될때 부여하며 1씩 증가한다. SQL에서 이러한 기능을 제공하는 쿼리문은 대표적으로 SEQUENCE가 있다. SEQUENCE 시퀀스는 자동으로 순차적으로 증가하는 순번을 반환하는 데이터베이스 기능 중 하나이다. 보통 Primary Key (PK, 기본키) 값에 중복값을 방지하기 위해 사용한다. 예를들어 게시판을 추가할 때 가장 큰 id 값에 +1을 해주는 로직을 짤 필요없이 시퀀스를 사용하면 자동으로 +1을 해주기 때문에 매우 편리하다. 시퀀스를 사용하기 위해서는 시퀀스를 생성해주어야 한다. 다음과 같은 형식으로 만든다. CREATE SEQUENCE [시퀀스 명] START WITH [시작숫자] --..
서브쿼리는 특정 테이블을 사용자의 설정에 맞게 재정의 할 수 있도록 해주는 기능이다. 쿼리문 안에 소괄호를 이용해 또 다른 쿼리문을 작성함으로써 그 쿼리문에 해당하는 정보를 이미 만들어 놓은 테이블처럼 사용할 수 있다. 예를들어 다음과 같이 EMP 테이블에서 각 직원의 연봉을 구하는 쿼리문을 작성해야 한다고 가정해보자. 하지만 테이블에는 급여(SAL) 정보밖에 존재하지 않는다. 그러면 쿼리문은 다음과 같을 것이다. SELECT ENAME "사원이름", DEPT "부서" , (SAL * 12 + BONUS) "연봉" FROM EMP; 정말 간단해 보인다. 하지만 WHERE 절을 추가하면 어떨까? 연봉이 1000만에서 2000만 사이인 사람을 구한다고 해보자. 쿼리문은 다음과 같다. SELECT ENAME ..

중첩 함수 오라클에서는 그룹함수를 2번까지 중첩해서 사용할 수 있다. (MSSQL은 이마저도 불가능) 다음과 같은 정보를 담고 있는 EMP 테이블이 있다고 가정하자. 그리고 EMP 테이블에서 모든 직원들의 급여를 부서별로(DEPTNO) 합계를 내려고 한다면, 쿼리문은 다음과 같다. SELECT SUM(SAL) FROM EMP GROUP BY DEPTNO; 그렇다면 이 부서별 급여 합계 중 가장 큰 값을 구하고 싶을때에는 어떻게 해야 할까? 최대값을 구하기 위해서는 함수 MAX() 를 사용해야 할 것이다. 그렇기 때문에 불가피하게 SUM() 함수와 함께 중첩하여 사용해야 한다. SELECT MAX(SUM(SAL)) FROM EMP GROUP BY DEPTNO; RANK(), DENSE_RANK() 의 다른..

SELECT문은 테이블이나 뷰 내에 있는 데이터를 검색하기 위해서 사용하는 쿼리문이다. 기본적으로는 다음과 같이 사용한다. SELECT [찾을 속성 이름] FROM [테이블 이름] 예를들어 다음과 같은 테이블을 생성하고 데이터를 추가했다고 해보자. CREATE TABLE EMP ( EMPNO NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY , ENAME VARCHAR2(10) , JOB VARCHAR2(9) , MGR NUMBER(4) , HIREDATE DATE , SAL NUMBER(7,2) , COMM NUMBER(7,2) , DEPTNO NUMBER(2) CONSTRAINT FK_DEPTNO REFERENCES DEPT ); --==>> Table EMP이(가) 생성되었습니..

INSERT INSERT는 테이블이나 뷰에 데이터를 집어넣을때 사용하는 쿼리문이다. 보통 다음과 같은 방법으로 사용한다. INSERT INTO [데이터를 넣을 테이블이나 뷰 이름] [넣을 데이터(들)]; 예를들어 다음과 같은 테이블을 만들었다고 가정해보자. CREATE TABLE DEPT ( DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY , DNAME VARCHAR2(14) , LOC VARCHAR2(13) ); --==>> Table DEPT이(가) 생성되었습니다. 이런 경우 데이터를 넣기 위해서 다음과 같이 쿼리문을 작성하면 된다. --> 부서 번호가 10인 뉴욕에 위치한 ACCOUNTING 부서 데이터 DEPT 테이블에 추가 INSERT INTO DEPT VA..