데이터베이스 어플리케이션 |
- 데이터베이스를 이용하면 어플리케이션과 데이터를 분리해서 관리할 수 있다는 장점이 있음 |
데이터베이스 이용의 장점 |
- 분리 독립 * 처리와 데이터를 분리해 독립적으로 사용 * 그 결과 데이터와 어플리케이션의 보수가 쉬어짐 - 일원적 관리 * 데이터를 데이터베이스에 집중시켜 모든 데이터를 일원적으로 관리 할 수 있음 - 공유 * 데이터베이스는 어플리케이션과 분리해서 다룸 * 여러 어플리케이션에서 액세스 할 수 있음 * 그 어플리케이션에서 데이터를 공유할 수 있음 - 연관성 * 관계형 데이터베이스에서는 데이터 간의 연관성이 중시되므로 다양한 데이터를 연관지어 저장할 수 있음 - 제약조건 * 등록할 데이터에 제약조건을 붙일 수 있음 * 등록 시에 제약을 충족하는 데이터만 저장할 수 있음 - 정합성 * 이상한 데이터를 사전에 제거하거나 데이터형을 검사하고 배타제어로 데이터 간의 모순을 제어해 전체 데이터의 일관성을 유지할 수 있음 - 동시 액세스 * 복수의 데이터 액세스를 동시에 처리하는 구조 * 필요에 따라 배타제어해서 데이터 간에 모순되는 상태가 일어나지 않게 함 - 보안 * 데이터 액세스의 제어 구조로 데이터 보안성을 구현 * 데이터의 보안을 확보하기 쉬워짐 - 안전성 * 데이터를 안전하게 저장할 수 있음 * 만일 시스템 오류 등으로 데이터를 유실해도 피해를 최소한으로 줄일 수 있는 백업이나 롤백 시스템이 있음
|
DBMS |
- 데이터베이스의 다양한 기능을 구현하는 데이터베이스 관리 시스템 - DBMS는 데이터베이스를 운영, 관리하고 데이터의 액세스 요구에 대응해 적절한 데이터를 반환하는 시스템 - DBMS의 주요 기능으로 트랜잭센 관리에 따른 데이터의 일관성 유지, 데이터 제약 구현, 동시 실행 제어, 백업 및 롤백에 의한 장해 복구 기능 등이 있음 - DBMS의 종류에는 네트워크형, 계층형, 객체지향형, XML형 등이 있음 - 관계형 데이터베이스에서는 데이터를 표형식으로 나타내므로 직관적으로 이해하기 쉽다는 특징이 있음 |
SQL |
- SQL( Structured Query Language ) - SQL은 ANSI와 ISO에 규격화된 표준 언어 DDL - Data Definition Language - 데이터 구조를 정의하는 명령을 중심으로 한 데이터 정의 언어 DML - Data Manpulation Language - 데이터 자체의 참조나 변경 등 데이터베이스 액세스 명령 집합인 데이터 조작 언어 DCL - Data Control Language - 데이터 액세스를 제어하는 데이터 제어 언어 |
대표적인 SQL 문 |
|
SQL |
의미 |
CREATE |
데이터베이스와 테이블을 작성 |
ALTER |
데이터베이스와 테이블의 정의를 변경 |
DROP |
데이터베이스와 테이블을 삭제함 |
SELECT |
테이블에서 데이터를 선택함 |
INSERT |
테이블에 데이터를 삽입함 |
UPDATE |
테이블에 데이터를 갱신함 |
DELETE |
테이블에서 데이터를 삭제함 |
GRAND |
데이터베이스 이용자에게 권한을 부여함 |
SQLite의 특징 |
- 일반적인 RDBMS와 달리 SQLite는 클라이언트-서버 형식으로 데이터베이스에 액세스하지 않음 - 데이터베이스에 액세스하는 방법은 라이브러리로 제공, 프로그램에 내장해 이용하는 형식 - SQL 표준을 모두 지원 - 바이트 오더에 의존하지 않는 스토리지를 사용해 아키텍처에 의존하지 않음 - 네이티브 코드로 직접 실행해 동작이 빠름. - 작은 데이터를 보존할 때나 어플리케이션의 설정 항목에서 데이터로 저장해두는 상황에 쓰기 편리한 데이터베이스를 제공 |
locate 명령 |
- '.db' 라는 확장자를 가진 파일을 선택(`locate .db`;) - 파일의 종류를 file 명령으로 조사(do file $f; done) - 조사한 것중 SQLite 3.X의 데이터베이스 파일을 추출( | grep "SQLite 3.x database") [ 00:41:20 | ~/linux_ex_c/ch7/list0823 ] $ for f in `locate .db`; do file $f; done | grep "SQLite 3.x database" |
역따옴표와 for 문의 조합 |
- 명령줄에 나열된 스크립트전체를 평가하기전에 역따옴표로 에워싼 부분이 먼저 평가 - 확장자가 '.db' 인 파일이 모두 추출되고, 그 파일을 대상으로 for 문이 반복되는것 |
SQLite 개발 패키지 설치 |
- SQLite를 이용하려면 'libsqlite3-dev' 패키지가 필요 - sudo apt-get install libsqlite3-dev - 'pkg-config' 에서 이용할 설정 파일 '/usr/lib/pkgconfig/sliqte3.pc' 와 관련 도규먼트도 동시에 설치돼 이용 가능 |
'프로그래밍 정리 > Ubuntu - C' 카테고리의 다른 글
[Ubuntu - 우분투 - C] libxml2 - Well-formed, Vaild, DTD, xml2-config (0) | 2015.05.21 |
---|---|
[Ubuntu - 우분투 - C] GLib 를 이용한 데이터 구조 처리(list, array, tree 등등에 쓰임) - libglib-2.0 (0) | 2015.05.20 |
[Ubuntu - 우분투 - C] pkg-config - 라이브러리 이용, 자동으로 컴파일 옵션 지정 (0) | 2015.05.17 |
[Ubuntu - 우분투 - C] 명령줄 옵션(3) - 옵션 해석 라이브러리(popt) (0) | 2015.05.16 |
[Ubuntu - 우분투 - C] 컴파일 에러 - undefined reference to (0) | 2015.05.16 |