rdb
-
[SQLite] 동적 자료형 (Dynamic Datatype)Software/SQLite 2018. 5. 20. 20:42
보통 대부분의 테이블 컬럼은 특정 자료형만 저장할 수 있는 정적 자료형(Static datatype)을 사용한다. 즉 Integer 타입으로 선언된 컬럼은 Integer 값만 저장할 수 있고 Float 타입의 값은 저장할 수 없다는 것이다. 그러나 SQLite3에서는 일반적인 다른 DBMS와는 달리 동적 자료형(Dynamic datatype)을 지원하고 있다. SQLite3에서는 테이블을 생성할 때 이전에 했던 것 같이 컬럼의 자료형을 명시하지 않아도 된다. sqlite> CREATE TABLE tblDynamic (id, value); sqlite> INSERT INTO tblDynamic VALUES (1, 'Test'); sqlite> INSERT INTO tblDynamic VALUES ('ind..
-
[SQLite] 락 매커니즘 & 트랜잭션Software/SQLite 2018. 5. 12. 23:11
SQLite3는 기본적으로 다수의 프로세스가 하나의 데이터베이스 파일을 읽고 쓸수 있다. 그런데 만약 다수의 프로세스가 동시에 동일 데이터 베이스 파일에 접속해서 읽거나 쓰게 되면 데이터베이스 무결성이 깨지게 되는 문제가 발생하게 된다. 이러한 문제가 발생하는 것을 막기 위해 데이터베이스를 읽거나 쓰기 위해서는 해당 프로세스가 적절한 잠금(LOCK)권한을 획득하도록 하고 있다. 아래는 프로세스 관점에서 바라 본 데이터베이스 파일의 잠금 상태(Locking states)들이다. 잠금 상태내용 UNLOCKED프로세스가 파일을 열기(Open)만 한 상태이며 읽기/쓰기는 하지 않은 상태 : 다른 프로세스에서 읽기/쓰기 가능 SHARED프로세스에서 파일을 읽고 있는 상태 : 다른 프로세스에서 동시 읽기 가능. 그..
-
[SQLite] 트랜잭션 (TRANSACTION)Software/SQLite 2018. 5. 9. 23:45
데이터베이스에서 트랜잭션 (Transaction)은 SQL 작업의 무결성 (Integrity)을 유지하기 위한 매우 중요한 개념이다. 즉 우리가 현실 세계에서 이루어지는 "거래" 시스템과 마찬가지로 특정 작업이 모두 수행되거나 모두 수행되지 않게 함으로써 그 무결성을 유지하는 것이다. (돈은 냈지만 물건을 받지 않았다면 거래는 성립되지 않는다. 그 반대도 마찬가지이며 거래 당사자들의 이해 조건이 모두 충족된 경우에만 거래가 성립한다.) 트랜잭션 구문 트랜잭션 구문의 시작은 BEGIN 키워드로 시작한다. BEGIN 이후 실행하고자 하는 SQL 구문들을 추가하면 되며 마지막으로 COMMIT 명령어를 통해 트랜잭션이 시작된 이후 수행된 모든 SQL 연상이 데이터베이스 파일(물리적)에 추가된다. 즉 BEGIN ..
-
[SQLite] 기본키 (Primary Key)Software/SQLite 2017. 9. 16. 16:49
Table 내 동일 한 레코드가 입력되는 경우 이를 구분해 줄 수 있는 식별자를 만들어 사용하는 데 이 식별자를 기본키 (Primary key) 라고 한다. 이 기본키는 각 테이블마다 단 하나씩만 설정할 수 있다. 그리고 아래와 같은 조건들을 만족해야 한다. 기본키(Primary key)의 조건 유일성 (Uniqueness) 기본키를 구성하는 컬럼은 테이블에서 레코드를 식별할 수 있도록 유일해야 함 최소성 (Minimality) 유일성을 만족하는 한도 내에서 최소한의 컬럼(하나 이상)으로 구성되어야 함 개체 무결성(Entity integrity) 기본키가 가지고 있는 값의 유일성이 보장받아야 함. (컬럼 값이 NULL인 경우는 값이 지정된 것이 아니기 때문에 기본키로 사용 불가) 기본키(Primary k..
-
[SQLite] 관계형 데이터베이스Software/SQLite 2017. 9. 2. 17:35
관계형 데이터베이스의 장점 데이터의 중복성과 종속성을 최소화 여러 테이블에 데이터를 나누어 저장 테이블 간의 관계를 통해 원하는 정보를 조회 관계형 데이터베이스의 설계 원칙 중복을 최소화 : 데이터 중복성(redundancy)과 일관되지 않는 데이터 종속성(dependency) 제거 규칙에 따라 테이블 설계 테이블 간 관계는 공통된 값을 통해 서로 연결 - 기본키(Primary Key) 관계형 데이터베이스 실제 예시 현재 'cars' table에는 자동차 이름과 가격, 그리고 해당 자동차의 브랜드 이름이 각각의 Column으로서 존재하고 있다. 문제는 자동차 브랜드의 이름이 바뀌거나 기업 합병등을 통해 해당 자동차의 브랜드가 바껴 버리는 경우 자동차의 이름과 가격은 그대로지만 브랜드를 바꾸기 위해 해당 ..