총 삽질들 514

#092_닷넷(.NET)_ ADO.NET - 비연결 계층 개념

안녕하세요 삽잡이입니다. 이번 시간 부터는 '비 연결 계층'에 대해서 알아보려고합니다. 연결 계층에서는 DB와 연결해좋지 않은 상태에서는DB 프로그램을 할 수 없었습니다.즉, DB에 대해서 가져오거나 수정등을 할 때에는 직접 테이블에 있는 내용에 명령을 내렸었다 이겁니다.모든 것을 다 데이터 원본을 대상으로 동작했었죠. 비 연결계층은 DB와 연결해놓지 않은 상태에서 DB 프로그램을 하는 것을 말합니다. 개념적으로 표현해보겠습니다. 비 연결 계층은쉽게 말하면, 원본 DB Source를 APP에 복사본을 뜨는 것입니다.즉, DB를 DB 그대로의 메모리상에 DB로 옮긴다는 것이죠.따라서, DB 프로그램을 할 때에는 DB 원본과 이야기를 하는 것이 아닙니다.왜냐? 메모리상에 DB와 이야기할 것이기 때문이지요. ..

#092_닷넷(.NET)_ ADO.NET - 트랙잭션 (Transaction)

안녕하세요 삽잡이입니다. 이번 시간에는 Transaction 에 대해서 알아보려고합니다. 트랜잭션은 DB 뿐만 아니라 다른 곳에서도 많이 사용됩니다.이는 '성공 아니면 실패'. 단 두가지의 상태만을 가질 수 있는 '단위'를 의미합니다. 어중간한 상태가 없습니다.이를 뚜렷하게 하기 위해 만든 단위가 바로 트랜잭션입니다.DB에서는 딱 '두가지 상태만을 갖는 명령어 집합'을 의미합니다. 트랙잭션에 사용되는 명령에는Insert, Delete, Update가 있지요. 돈뽑으러 간다고 생각해봅시다.ATM기에서 돈을 뽑았는데 오류가 발생했습니다.그래서 돈을 못뽑았습니다.그런데, 은행 기록을 보니 이미 돈은 뽑혀있었습니다... 이게 말이 됩니까? 결론적으로,무조건 성공하던가 실패하던가...실패를 했다면, 한번도 시도하..

#091_닷넷(.NET)_ ADO.NET - DB 모델링

안녕하세요 삽잡이입니다. 이번 시간은 DataBase 설계즉, 데이터 베이스 모델링에 대해서 알아보려고합니다. DB 모델링은DB가 규칙성있는 구조를 갖는 데이터 집합을 말합니다.즉, 데이터 모델링이라는 것은 말 그대로 데이터를 모델화 하는 것이지요. 기존에 객체 지향개념에 입각하여해결하고자하는 문제에 대해서 추상화를 사용합니다. DB 모델을 만드는것 또한 추상화를 하는 것입니다. DB 용어에서는 일반적으로, DB 테이블들을 Entity라고 부를 수 있습니다.즉, 어떤 표현하고자하는 문제 내에서 모델을 가지고 와서DB에 표현하면 하나의 Entity가 되는 것이지요. 우리는 사용자가 원하는 문제에 대해서 데이터 베이스로 표현할 수 있습니다. 그런데, 사용자의 요구사항을 DB 테이블로 표현하고자할 때하나의 테..

#090_닷넷(.NET)_ ADO.NET - 자리표시자 & 저장 프로시저

안녕하세요 삽잡이입니다. 이번 시간에는 자리 표시자와 저장 프로시저에 대해서 알아보려고합니다. SQL 명령을 내릴 때 자리 표시자라는 것을 사용할 수 있습니다. 기존의 명령을 때릴 떄와 다르지 않습니까?값 대신, @를 붙인 것입니다. 즉, 지금이 아니라 나중에 값이 온다는 것을 지정해주는 것입니다. Command객체는 내부적으로 Parameters 라는 객체를 가지고 있습니다.이 Parameters 객체에 값을 채워놓을 수 있게 되는 것이지요. Value 역시 지정을 해주고, 타입등을 지정해줍니다.명령을 내릴 떄, Parameters를 통해 명령을 내릴 수 있다는 것입니다. 값을 직접 입력해 얻을 수도 있지만, 이렇게 Parameters를 통해서 얻을 수 있다는 것이죠. 이 자리 표시자는'저장 프로시저'..

#089_닷넷(.NET)_ ADO.NET - DB 라이브러리

안녕하세요 삽잡이입니다. DB를 사용할 때에는즉, DB를 읽고 쓰는 것들은 어플리케이션과 분류하여 사용할 수 있습니다. 어플리케이션이 직접 DB를 읽고 쓰기를 할 수 있는 코드를 넣을 수는 있습니다.하지만, 별로 좋지 않은 코드가 됩니다.DB의 유무를 떠나서 어플리케이션이 동작할 수 있어야하기 때문이죠.따라서, DB 전용 라이브러리를 하나 만듭니다.이를 통해 DB에 접근하게 되면...즉, DB 라이브러리 형식의 객체를 사용하게 되면,어플리케이션은 DB를 사용하는지 모르게 됩니다. DB를 직접 지원할 수도 있지만,어플리케이션에서 만약 DB가 아닌 다른 무언가로 사용하겠다고 한다면,이때는 코드를 전면적으로 수정을 해야합니다. 그런데, DB라이브러리를 사용한다면,똑같은 인터페이스 기능을 지원하되, 메모리상에 ..

#088_닷넷(.NET)_ ADO.NET - 또 다른 ADO.NET 데이터 공급자

안녕하세요 삽잡이입니다. 이전 시간까지 배운 데이터 공급자는 '공용 데이터 공급자'입니다. 복습하는겸... 다시 한번 생각해 보겠습니다.데이터 공급자는 DBMS와 연결을 수행하기 위한 여러가지 형식들의 집합을 의미합니다.데이터를 읽고 쓰기 위한 집합을 의미하죠.따라서 데이터 공급자라고 말하는 것입니다. 아무리 DBMS들이 많더라도, DBMS와 대화하기 위해서공용으로 사용하는 것은 만들어 놓을 수 있지 않겠습니까?내부적으로 실제 사용하는 것은 만들지 못해도,공용으로 사용하는 것들은 만들 수 있지 않겠냐 이겁니다.어차피 다른 DBMS라도 똑같은 개념을 가지고 있을 것이니깐요. 필자가 알아본 것은 추상적 클래스의 개념이라는 것입니다.이를 구현한 것은 해당 DBMS가 했겠지요. 아무튼... 이전 시간까지 공통으..

#087_닷넷(.NET)_ ADO.NET - 비연결 계층

안녕하세요 삽잡이입니다. 이전 시간까지 말하면서 하나 빠진 개념이 있습니다.잠시 이전 시간에 배운 ADO.NET 공급자에 대한 그림좀 보시고 오시죠. 뭘 언급 안했을까요? 바로, DataAdapter 객체입니다. 저번 시간의 기억을 잘 살려보시길 바랍니다.혹시 이해가 안가신다면 다시 한번 살펴보시죠... ..?? 그런데, DataAdapter 없이도 완벽하게 기능을 수행할 수 있지 않습니까?즉, 충분히 완벽하게 DB를 가지고 놀 수 있다 이겁니다. Connection, Command, DataReader만을 가지고도DB를 읽고 사용할 수 있는데, 사실 이건 '연결 계층'에서만 가능한 것입니다. DataAdapter 객체는 연결 계층에서 사용하는 형식이 아닙니다.기억하실지 모르겠지만,ADO.NET은 세가지..

#086_닷넷(.NET)_ ADO.NET - 연결 계층

안녕하세요 삽잡이입니다. 이번 시간에는 데이터 공급자의 핵심 타입에 대해서 알아보려고 합니다. 닷넷 플렛폼 데이터 공급자는이처럼 Connection, Command, DataReader, DataAdapter라는 핵심적인 네가지의 객체를 가지고 있습니다.즉, ADO.NET 형식에서 가장 중요한 형식입니다. Connection 객체는 '데이터의 연결'을 지을 때 Client에서 가장 먼저 호출하는 객체입니다.즉, 우리말로 연결 객체이지요. Connection 객체는 Command 객체와 연결되어있습니다.Command 객체는 명령 객체이지요.데이터 수정, 데이터를 가져오는 등의 기능을 가지고 있는 객체입니다.이 명령에는 크게 세가지가 있습니다. 1. 데이터 읽기 명령2. 데이터 읽기가 아닌 Insert, D..

#085_닷넷(.NET)_ ADO.NET - 관계형 DB & 객체형 DB

안녕하세요 삽잡이입니다. 이번 시간도 역시 ADO.NET에 들어가기 이전에선행학습으로써 DB에 대해서 더 알아보고자 합니다.이번에는 DB를 만들어낼 때 그 '규칙'에 대해서 알아보고자합니다. DB는 크게 DBMS가 무엇이던지간에두가지로 구성되게 되어있습니다.즉, 규칙을 만들어내는 방법이 두가지라는 것입니다.물론, 더 있을 수 있으나 가장 일반적인 두가지라는 것이죠. 이는 '관계형 DB'와 '객체형 DB'입니다.DB는 규칙성 있는 데이터의 집합이고,그 규칙성을 만들어낼 때에 일반적으로 사용하는 방법이 두가지라는 것입니다. 그런데, 현존하는 DBMS는 대부분 관계형 DBMS입니다.그러니까 DBMS가 관계형 DB를 통해 규칙을 만들고 DB를 관리한다 이겁니다. 관계형 DB의 핵심은 두 가지 입니다.바로, Ta..