기본 콘텐츠로 건너뛰기

SQL Server (1) 테이블

스키마(Schema)

SQL Server는 Table, Index, Primary Key, Foreign Key, View, Check, Default, Stored procedure, Function, Trigger, Data type 등과 같은 다양한 데이터베이스 개체을 가지고 있다. 이중 실제 물리적인 크기를 갖는 개체는 Table과 Index이다. View 경우 Index를 지정하면 물리적인 크기를 갖게 된다.

SQL Server에서 개체 이름은 서버명.데이터베이스명.스키마명.개체명과 같이 전체 이름를 사용하는 방법과 부분 이름을 사용하는 방법이 있다. 분산 트랜젝션이나 원격 질의 등을 수행할 경우는 전체 이름을 사용해야 하나 대부분은 데이터베이스에 연결된 경우 스키마명.개체명 정도를 사용하는 것이 무난하다.

데이터베이스 내의 개체들을 포함하는 추상적 개념으로 스키마라는 개념을 사용한다. SQL Server 2000의 경우 테이블 등과 같은 개체를 생성할 경우 사용자에게 권한을 부여하였기 때문에 사용자명.개체명으로 개체 이름을 사용하였다. 하지만 사용자를 삭제할 경우 해당 사용자에게 권한이 부여된 개체를 모두 삭제하거나, 다른 사용자에게 권한을 이관해야만 삭제가 가능한 불편함이 있었고, 어플리케이션 내에 사용자명.개체명으로 명명된 개체 이름을 모두 찾아서 수정해야 하는 불편함마저 발생하였다.

SQL Server 2005부터는 스키마를 사용하여 이런 불편함을 없앴으며, 사용자는 스키마에 대한 권한을 지정하므로써 해당 스키마내의 개체들을 대상으로 작업을 하는 구조로 변경되었다. 데이터베이스를 만들면 기본적으로 dbo라는 이름의 스키마가 만들어지는데 dbo라는 이름은 SQL Server 2000에서 관리자 계정이 DBO라는 이름으로 지정되었기 때문에 호환성을 위해 선택된 이름이다.

스키마명은 보통 업무별로 이름을 지정하고 해당 업무 담당자를 사용자로 지정하여 권한을 주는게 일반적이다. 스키마를 삭제할 경우는 해당 스키마가 소유하는 개체들을 다른 스키마로 이관하거나 모두 삭제해야 한다.

댓글

이 블로그의 인기 게시물

ESP8266 마이크로컨트롤러에서 UART0과 UART2 동시 사용하기

ESP-12F와 2개의 FTDI를 UART0과 UART2에 연결 ESP8266은 3개의 UART 포트를 제공한다. UART0과 UART2는 같은 Serial 클래스에서 관리하므로 동시 사용이 불가능하므로 교대로 사용해야 한다. UART1은 Serial1 클래스에서 관리하므로 동시 사용이 가능하지만 출력 전용이기 때문에 TX만 정의되어 있다. UART0 UART1 UART2 RX GPIO3(RX) - GPIO13 TX GPIO1(TX) GPIO2 GPIO15 아두이노 클래스 Serial Serial1 Serial 비고 UART2와 동일한 클래스를 통해 관리됨 메시지 수신을 위한 RX는 정의되어 있지 않음 UART0와 동일한 클래스를 통해 관리됨 UART0과 UART2는 동시 사용이 불가능하므로 한 번에 하나의 포트만 사용하도록 Serial 클래스의 swap() 멤버함수를 사용한다. NodeMCU와 USB-UART 연결 NodeMCU는 ESP-12E 개발보드가 사용되었으며, micro-USB 포트를 제공한다. micro-USB 포트는 UART0 포트를 사용하며, RX(GPIO3)와 TX(GPIO1) 핀을 공유한다. USB-UART 연결 장치를 UART2 포트에 연결하기 위해 D7(GPIO13)과 D8(GPIO15) 핀에 연결했다. NodeMCU는 UART0 포트를 이용하여 Ardino의 시리얼 모니터로 출력을 보내며, UART2 포트의 출력은 별도의 터미널프로그램으로 접속하여 출력을 모니터했다.

아두이노 미세먼지 센서 PM2008

온습도계를 달아봤으니 이참에 미세먼지까지 한꺼번에 표시되도록 기능을 추가해보기로 했다. 마침 아두이노 전용 쉴드까지 제공하는 미세먼지 센서가 눈에 띄길래 일단 구매를 해봤다. 배송받은 센서는 거의 완제품에 가깝게 제작되었다. 다만 아쉬운 점은 아두이노 전용 쉴드의 마감이 좀 지분하다는 느낌을 받았는데, 후처리에 신경을 더 써주는 센스가 부족한 듯. PC2008 미세먼지 센서 아두이노 우노 전용 PM2008 쉴드  부착한 상태는 핀 위치도 잘 맞고 비교적 깔끔한 느낌이다. 쉴드 덕분에 지저분한 배선이 줄어들어 다른 센서들을 붙이기에도 좋을 것 같다. 쉴드와 일체형으로 제작하지 않은 건 라즈베리 파이와 같은 다른 마이크로칩 보드용의 쉴드 제작을 염두에 둔 듯하다. Arduino UNO에 장착한 모습 센서의 작동 테스트를 위해 PM2008 I2C 라이브러리를 추가하여 샘플코드를 실행시켜봤다. 성공적을 테스트를 완료. 이제 공부가 남았을 뿐. Arduino library PM2008 I2C 설치

모니터링 :: Grafana와 Prometheus 설치하기

Raspberry Pi 3 B+에서 Grafana와 Prometheus 설치하기 Grafana는 오픈소스 기반의 강력한 대시보드 플랫폼이다. 서버나 임베디드 장비의 운영상태 등을 Prometheus, ElasticSearch와 같은 data source를 플러그인 방식으로 연결해서 다양한 그래픽 요소로 나타낸다. 여기서는 대표적인 오픈소스 모니터링 솔루션인 Prometheus를 이용하여 요즘 메이커들 사이에 사물인터넷의 주요 디바이스로 자리매김하고 있는 라즈베리 파이의 운영상태를 모니터링 해보기로 하겠다. [그림.1] 라즈베리 파이 3 B+ [그림.2] 운영 중인 라즈베리 파이 3 B+ 라즈베리 파이는 영국의 라즈베리 파이 재단에서 학교와 개발도상국에서의 기초 컴퓨터 과학 교육 증진을 목표로 제작한 초소형 PC이다. 메인보드에 내장된 GPIO핀을 이용하여 다양한 센서모듈을 조합하여 메이커들에게는 사물인터넷의 핵심 기기로 각광받고 있다. 서버나 사물인터넷 허브와 같이 중단없이 장시간 운영되는 장비의 경우 안정적인 운영을 위해 실시간 서비스 모니터링이 필수적인데, Prometheus를 이용하면 다양한 정보를 수집하여 로그를 저장하고 이를 Grafana와 연동하여 세련된 그래픽 환경으로 운영이 가능하다. 게다가 오픈소스로 제공되기 때문에 설치와 운영 등 기술 비용(!)을 제외하면 소프트웨어 라이선스 비용은 무료이다. (제발, 소프트웨어 라이선스가 무료라고 모든게 공짜라는 생각은 버리자!) [그림.3] Prometheus Architecture Prometheus는 그림과 같이 Prometheus 서버가 외부의 export node들로부터 metric을 pulling 방식으로 수집하고, 이를 Grafaana 등을 이용해 시각화한다. 구조는 좀 복잡해 보이지만 이 글에서 구현해 볼 모니터링 툴을 간단히 설명하면, 1. node exporter - 모니터링할 기기의 메트릭(정보)을 제공 2. prometheus - 노드들로부...