분류 전체보기
/* Main Form */ string strPara = txtRelation.Text.ToString(); string strFrDt = cboFrDt.Text.ToString(); string strToDt = cboToDt.Text.ToString(); // xr01 이름인 xtra report의 객체 xrREPORT 생성 xr01 xrREPORT = new xr01(dtRtn, strPara, strFrDt, strToDt); xrREPORT.ShowPrintMarginsWarning = false; xrREPORT.RequestParameters = false; // Hide the Parameters UI from end-users. DevExpress.XtraReports.UI.Report..
[ DB에 연결하는 문자열 ] string connString = @"DataSource = "+ p_strIP +"; Initial Catalog = " + p_strCatalog + "; UserID = 아이디; Password = 비번"; 1. DataSource = ; 2. Initial Catalog = ; 3. UserID = ; 4. Password = ; 데이터베이스 연결하는 방법은 다양하고, 나는 아래 중 첫 번째 방법(모듈화)을 주로 사용한다. [ DB 1개 연결하는 경우 ] 1. 모듈화 /* Module */ class Con_Database { string connString = @"Data Source = IP주소;Initial Catalog=northwind;User ID=sa;..
Database 정규화 (Normalization) : 불필요하게 중복되는 데이터를 제거하고, table을 논리적이고 직관적으로 구성하여 효율성과 일관성에 초점을 맞춤 - 정규화의 각 단계를 수행할 때마다 더욱 정제된 논리적 구조(정규형(Normal Form, NF))를 도출함. - 어떤 relation이 특정 제약 조건의 집합을 만족하는지에 따라 특정 정규형에 속하게 되고, 상위 단계로 갈수록 (하위단계 + 알파 제약조건) 을 한 형태. - 함수 종속 (functional dependency) : X 는 결정자 (기본키), Y는 종속자 (나머지 후보키) 정규화되지 않은 논리적 구조의 이상 현상 : 여러가지 종류의 정보들을 1개의 relation으로 표현하면서 발생하는 문제들 1. 삭제 (delete) ..
드디어 대망의 마지막 포스트 개요 3탄이다. 여기까지 읽느라 고생이 많았다. 하지만 아직도 읽을게 산더미니까 조금만 더 존버 정신을 보이는게 좋겠다. (특히 중요한 View, 기본키, index에 관한 내용이 나오니까 집중!) Meta-Database = DBMS가 제 기능을 잘 할 수 있도록 DB에 관한 정보를 모아놓은 시스템 DB - "시스템 view", 테이블", "catalogue" 라고도 부름 - Meta DB가 포함하는 객체 : DB, table, view, index, 사용자, 제약조건 등 - Meta DB의 정보들은 사용자 DB의 정보들처럼 table형태로 저장됨 뷰(view) : 실존하지 않는 가상 테이블. 원하는 data만을 조작할 수 있게 해서 table을 단순화 시키고 data의 보..
[ 데이터 언어 ] - 데이터 정의어(Data Definition Language, DDL) : DB에 대한 정의, 수정, 삭제 기능 - 데이터 조작어(Data Manipulation Language, DML) : DB에 저장된 data에 대한 select, insert, update, delete 연산 - 데이터 제어어(Data Control Language, DCL) : DB에 저장된 data의 보안/권한을 제어하거나 쿼리에 대해 동시성 제어를 수행 - ex) 사용자 계정, 세션 관리, 로그인, 서버 관리 등 정보 관리 목적을 위해 사용됨 *데이터 조작어(DML)에 대한 내용은 아래를 클릭하면 된다 DML언어_select/update/insert/delete * 속성은 테이블의 column명을 의미한..
[ Data 독립성 ] Data 독립성 : data 표현 방식, 저장위치가 바뀌어도 논리적 저장 구조나 응용프로그램에게 아무런 영향을 주지 않음. 1. 논리적 data 독립성 : DB의 논리적인 구조가 바껴도 응용프로그램에게 영향을 주지 않음. - 여기서 '논리적인 구조'는 스키마를 의미하는데, - 스키마 : DB에 들어있는 실제 값이 아니라 DB의 구조, 속성의 data type 등 데이터베이스를 서술하는 구조를 뜻함. 2. 물리적 data 독립성 : data의 논리적 구조 또는 프로그램을 수정하지 않고도 시스템 성능을 향상시키기위해 data의 물리적인 저장 형식, 구성 변경이 허용됨. [ Database 시스템의 논리적 구조 ] 1. 외부 단계 : 사용자에게 허가된 일부 논리적 데이터베이스 (사용자 ..
C# 소스코드 내에서 data 조회하는 sql문을 작성한 다음에 Crystal Reports에 데이터를 뿌려줄 때를 생각해보자. Crystal Reports에서 데이터베이스 마법사를 통해 데이터 테이블 정보 (속성들)를 받아올 수 있는데, 이 떄 사용하는 방법들 중 하나가 XML schema 파일을 가져오는 것이다. 이번 포스트에서는 data table 정보를 XML schema 파일 형태로 생성해서 저장하는 소스코드를 살펴보겠다. // 쿼리문 작성 후 dtRtn 변수에 테이블 정보를 받아옴 dtRtn = db.GetDataTable(strSQL); dtRtn.TableName = "Table01"; // xml 파일 생성 StringBuilder sb = new StringBuilder(); Syste..
쿼리문(sql)을 작성하다가 끝에 \n 또는 \n\r 또는 Environment.NewLine 을 붙여주면 디버깅할 때 어떤 쿼리문인지 알 수가 있다. 즉, 가독성 좋은 소스코드를 작성할 때 필요한 이스케이프문이라고 볼 수 있다. 하지만 매번 소스코드에서 sql += "..." + Environment.NewLine; 을 작성하는게 귀찮지않나? 특히나 코드가 점점 길어진다면 매번 끝에 저걸 작성하는 것도 일이다. 함께 일하는 동료 개발자나 본인을 위해서라도 가독성 좋은 소스코드를 작성하는게 좋을 것이다. 클래스 파일을 따로 만들어서 거기에 아래와 같은 소스코드를 먼저 작성하고 저장한다 : using System; using System.Collections.Generic; using System.Linq..