티스토리 뷰

SQL ADO.net 1일차-1
(관계형데이터베이스 DB 테이블,DML,DDL,DCL)

비트교육센터 고급과정 강의정리내용입니다. 빠진내용, 잘못된 내용이 있을 수 있습니다. 올리지못한 네트워크프로그래밍, 윈도우즈 시스템프로그래밍, API(WIn32)프로그래밍, C#, WInform, WPF 등 도 시간나는대로 정리해서 올려보도록 하겠습니다.. 할게너무 많아서 씁슬합니다 ^^;

SQL
 일반적으로 DB(데이터베이스)라고 하면, DBMS라고 생각하면된다. 왜냐면 DB를 가지고 작업을 할라면 DBMS를 가지고 조작해야 하기 떄문. 없으면 거의 불가능 하기 때문이다. 그래서 DB는 다이렉트로 열지 않고 일반적으로 DBMS로 열게됩니다.

 그 것을 처리할때 동일하게 사용할 수 있는 언어,문법이 바로 SQL이다. 결론적으로 DBMS와 무관하게 동일 문법을 사용할 수 있습니다.

 DB는 객체형DB와 관계형 DB로 나눠집니다. 그러나 현존하는 대부분의 DBMS가 관계형 DB입니다.
객체형 DB는 현재 거의 망했다고.. 데이터 관리시엔 객체형보다 관계형이 더 효율적이라는 것을 나중에 알게되었다고합니다.

객체형DB장점:애플리케이션이 객체용으로 관리된다는 점 하나다.

 파일을 직렬화해서 저장하듯이 데이터 베이스도 마찬가지라고 생각하면됩니다. 결론적으로 말하면, 관계형 DB가 더 효율적입니다.

 다시 반복하면 DB를 직접 우리가 접근하는 것이 아니라 DBMS를 통해서 사용하는 것입니다. 그 명령을 통일시켜서 약속하여 만든 표준언어가 SQL입니다.

 관계형 DB의 핵심은 무엇일까요? 바로 테이블입니다. 관계형 데이터 베이스는  최소한 한개 이상의 테이블을 가집니다. 아무 테이블도 없다면 사실상 그건 DB가 아닌 것이 되겠죠.

 테이블은 객체와 거의 비슷하다고 할 수 있습니다. 객체 지향에서 클래스 여러개를 쓸 수 있지만.. 클래스 하나에 다 코딩을 할 수 있듯이.. 그러나 1개 쓸 때 또는 여러개 쓸 때 각각 좋을 때 나쁠 때가 있겠죠. 테이블도 마찬가지라 이것을 잘 만드는 것이 중요합니다.

 최소한 관계형 데이터 베이스의 핵심은 테이블입니다.

 테이블은 객체지향에서 클래스. DB에선 엔티티라고 부릅니다. 간단히 객체라고 생각해도 무방합니다. 어떤 객체를 넣을지.. 틀을 테이블이라고 생각하면되겠죠.

 필드(열,COL)은 엔티티의 속성을 의미합니다. 예를 들어서 엔티티가 학생이라면 필드는 학생의 이름이나 학번 등으로 나타낼 수 있겠죠.

 레코드(행,LOW) 은 실제데이터, 실제 정보를 나타냅니다.

 테이블은 객체이기도합니다. 테이블의 필드인 속성이 즉 클래스가 되는것이고. 곧 테이블이 속성을 가지면 엔티티자체를 나타냅니다. 이걸 DB에서 스키마라는 용어를 씁니다. (테이블의 스키마) 스키마라는 단어는 형식이나 구조를 일컫는 단어로 번역됩니다. 스키마만 보면 엔티티의 속성을 다 볼 수 있는 것..

 학번은 프러이머리키(PK)를 갖고 리드온리(ReadOnly) 등등 정보 틀(스키마)를 갖게됩니다.

 객체지향의 클래스와 테이블의 스키마가 비슷한 용어가 되는 것입니다. 테이블의 스키마 핵심은 컬럼. 종류와 성질입니다.
Low(행, 레코드)는 실제 데이터가 되는것으로 객체지향에서 객체와 동일합니다.

 테이블들의 정보가 모여서 DB의 스키마가 됩니다. DB는 형식정보 스키마와 실제 정보의 데이터 집합입니다. 만약에 DB를 이전하게된다면 스키마이동 과 실제 정보 이동 이런식으로 2가지를 수행하게 되며, DB의 스키마 이전시에는 스키마만 이동하면 되고 데이터는 새로 쓰시 시작하면 되겠죠.

 스티마 : 테이블의 구조, 형식 (예시: 사람-이름,주민번호)

 SQL은 크게 3가지로 나뉩니다. 데이터 관리언어 DML:데이터 조작명령 / DDL:데이터 베이스 자체 생성 변경명령 / DCL: 제어명령

 DML: 4가지 SELECT, Insert, Delete,Update (대소문자 구분은 없으며 보통 다 대문자로 쓰거나 첫글자를 대문자로 씀)

 DDL : CREATE, ALTER,DROP 제약사항 생성,변경,테이블 생성, 데이터 생성 등

 DCL : 트렌젝션(:원론적인 용어는 실행의 묶음 단위) DB에서 트랜젝션은 성공하거나 실패하는 단 하나의 상태를 갖는 작업의 단위다. 무결성이 굉장히 중요하다. 무결성이라는 것은 오류없이 동작하는 개념. 트랜젝션이라는 개념이 그래서 생깁니다. 만약에 데이터를 넣는 도중 DB가 종료되게 된다면..(소멸) DB가 재실행시에는 그런 작업을 하지 않았던 것 처럼 원상태로 동작복구합니다. 그래서 딱 2가지. 성공 or 아무것도 하지 않음 으로 나뉘게되는데 이런 것을 트랜젝션이라고 합니다.

 커밋(commit):지금 동작한걸 확정 / 롤백 : 지금 까지의 것이 원상태로 돌아감.

DB와 Virtual Table

 DB에 SQL을 해주면 ResultSet이 넘어옵니다.(RS) 가상테이블이 넘어오죠. 우리가 Select해준 가상테이블말입니다. 그럼 APP에서 받게됩니다.

 ADO.net : 라이브러리입니다. DB인터페이스를 위한 라이브러리입니다.

 만약 여러개의 DBMS가 있따면, 각각 제품에서 .net용 라이브러리를 지원하게됩니다. 결론은 ADO.net은 DB용 .net라이브러리입니다.

APP db ADO.net

DB라이브러리 BCL.net

댓글
댓글쓰기 폼