Blog | Tag | Local | Guest | Login | Write |  RSS
효과적인 DB설계에 해당되는 글 4건
2008.10.23 :: MySQL의 특징
2008.10.16 :: MS-SQL의 특징

안녕하세요. ^_^ 다들 너무 오랜만이죠? ㅎㅎ
너무 오랫동안 포스팅을 안해서 벌금이.. 후덜덜덜
그래서 오늘은 멤버십 컴퓨터에 MSSQL 2008을 설치해서 DB 생성과 삭제에 관한 것들에 짧게나마 알아보고자 합니다.

우선 MSSQL 2008의 Microsoft SQL Server Management Studio를 켭니다.
서버에 접속을 하시구요.


접속을 해서 보시면 왼쪽편에 데이터베이스, 보안, 서버계열.. 등등등 여러가지가 보이실텐데요.
이제 데이터베이스를 생성해보도록 하겠습니다.


데이터베이스가 생성이 되었습니다.
생성된 데이터베이스에 데이터들을 입력하기 전에 CREATE문에 대해 잠시 살펴보도록 하겠습니다.

 


 



이렇게 3가지 예제를 보셨는데요.
DB를 생성하는 것은 그다지 어렵지 않죠??
그러면 이번에는 데이터베이스 사이즈 늘리기를 중심으로 관리하는 방법을 살펴보겠습니다.

  1. 데이터베이스 관리란?
    • 데이터 증가에 따른 파일 사이즈 변경
    • 트랜잭션 로그 모니터링
    • 필요에 따른 데이터베이스 사이즈 줄이기
    • 데이터베이스 삭제
    대부분의 작업들은 SQL Server가 자동으로 해주기 때문에 별다른 관여가 필요없지만 수작업이 필요한 경우가 있습니다.

  2. 데이터베이스 사이즈 늘리기
    데이터베이스 사이즈를 늘리는 방법은 다음의 세가지가 있습니다.
    • 자동으로 증가하도록 데이터베이스 옵션 설정
    • 데이터 파일의 사이즈 확장
    • 데이터 파일 추가

    1) 데이터베이스 지동 증가 옵션 설정
    CREATE DATABSE문 사용시 사이즈 증가에 대한 SIZE, MAXSIZE FILEGROWTH옵션을 사용하면 됩니다.

    데이터베이스를 만들 때 이 옵션들을 이용해서 필요한 경우 사이즈가 자동으로 증가하게 해 주는 것이 좋습니다. 또한 중요한 것은 데이터베이스가 꽉 차는 사태가 없어야하는 것입니다. 아무리 사이즈 자동 증가가 되게 했다 하더라도 하드디스크가 여유공간이 없어지면 데이터베이스 사이즈 증가가 더이상 불가능하게 됩니다.

    2) 데이터 파일의 사이즈 확장
    ALTER DATABASE MyDB
    MODIFY FILE (NAME = MyDB_Data, SIZE = 30MB)
    GO

     MODIFY FILE을 이용하여 MyDB_Data 파이르이 사이즈를 30MB로 바꾸었습니다.

    3) 데이터 파일 추가

    ALTER DATABASE MyDB
    ADD FILE (NAME = MyDB_Data2,
    FILENAME = 'D:\Data\MyDB2.ndf',
    SIZE = 10MB,
    MAXSIZE = 50MB,
    FILEGROWTH = 5MB)

    GO



    ADD FILE을 사용하여 사이트가 10MB인 파일을 추가함으로써 데이터베이스 사이즈를 늘렸습니다.


MySQL의 특징

MySQL은 오픈 소스 데이터베이스로 매일 50,000여건의 다운로드가 이루어지고 있는 최고의 다운로드 수를 기록하고 있는 데이터베이스입니다. 세계에서 가장 많이 인스톨되고 가장 대중적인 데이터베이스라 할 수 있다.Heavy transaction processing, Terabyte-sized data warehouse, high-traffic web site 등에서 최고의 데이터베이스 기술이 입증되었다.또한 MySQL의 아키텍쳐 상 가볍고 핸들링이 쉬워 Web 2.0 사용환경에 가장 적합한 데이터베이스로 볼 수 있다.

MySQL의 특징

  • Internals and portability:
    • 커널 쓰레드를 이용한 멀티 쓰레드 지원.
      Fully multi-threaded using kernel threads. It can easily use multiple CPUs if they are available
    • transational과 non-transactional 저장 엔진을 제공한다.
      Provides transactional and non-transactional storage engines.

    • Uses very fast B-tree disk tables(MYISAM) with index compression
      MYISAM 엔진은 매우 빠른 B-tree 테이블을 사용한다.

    • 상대적으로 다른 저장 엔진을 추가하는 것이 쉽다. 만약 SQL 인터페이스를 내부 데이터베이스에 추가하려할 때 유용하다.
      Relatively easy to add other storage engines. This is useful if you want to add an SQL Interface to an in-house database.

    • 쓰레드 기반의 빠른 메모리 할당 시스템
      A very fast thread-based memory allocation system.

    • one-sweep multi join을 이용하기 때문에 join시 매우 빠르다.
      Very fast joins using an optimized one-sweep multi-join (Oracle도 사용하고 있음)
    • In-memory hash tables, which are used as temporary tables.
      임시 테이블을 사용하는 내부 해쉬 테이블

 

  • Scalability and limits (확장성과 제한성)
    • 크기가 큰 데이터베이스를 다룰 수 있다.
      Handles large databases. We use mysql server with databases that contain 50 million records. We also know of users who use mysql server with 60,000 tables and about 5,000,000,000 rows.


MySQL 아키텍처


 

MS-SQL의 특징

Microsoft SQL Server는 분산형 클라이언트 서버 환경을 위해서 틀별히 디자인 된 고성능의 스케일러블 데이터베이스 관리시스템으로 내장된 데이터복제 기능과 강력한 관리 툴 및 개방형 시스템 아키텍쳐는 기업이나 조직의 규모에 맞춰 가장 경제적인 정보솔루션을 구축할 수 있도록 최상의 플랫폼을 제공한다.

MSSQL의 특징
  • 통합을
  • 표준 대치형 멀티프로세서 하드웨어 지원
  • 탁월한 가격대 성능비 비용 절감
  • 개방형 표준 향상된 관리
  • 통합과 업계 표준 지원
  • 광범위한 개발
  • 다수의 서버를 지원하는 트랜잭션의 유연한 관리
  • 수백개의 솔루션
  • /외부와의 탁월한 연결 기능
  • 내장된 데이터 복제기능
  • 완벽한 인터넷/인트라넷 통합
  • 강력한 호스트 연결성
  • 우수한 메일 통합 기능
  • 통합된 C2/E3 보안 기능
  • Windows NT에서의 기업네트워크 규모 조정성  

 

  • Windows NT와의 결합으로 NT 서버에서 지원하는 모든 하드웨어 구조에서 완벽하게 지원한다.
    • NT상에서는 SQL 서버가 서비스로서 동작하는데, [제어판]-[서비스] 부분을 보면 된다. 9x에서는 어플리케이션의 개념으로 동작을 한다. NT 최적화 되어 있으며 98 설치시 게임이나 사운드 카드, 비디오카드와의 충돌 많은 문제를 가질 있다.

  • NT 도구(스케쥴링, 성능 모니터, 이벤트 표시기) 연동된다.
    • SQL서버에서 사용하는 거의 대부분의 프로세스를 윈도우즈NT에서 모니터링 가능하다. 특히 NT 성능 모니터에서의 모듈인은 아주 섬세한 부분의 모니터링과 튜닝까지의 연계도 가능해진다. 아울러 SQL서버 자체내에 로그 시스템으로 오류를 분석하며 오류의 설정으로 NT 이벤트 로그에도 사용이 가능해진다SQL서버의 인증방식은 가지로 SQL Server and WindowsNT 인증과  Windows NT only 인증이 있다. 기본 세팅은 1 인증이고, NT 서버의 인증 체계를 그대로 사용이 가능하다.

  • 집중화된 서버 관리로 분산된 기업환경에서의 집중된 서버 관리 도구를 제공한다.
    • NT 텔넷 인증이 없다. 그러나 SQL 서버는 Enterprise Manager라는 관리 툴로 원격지의 서버를 등록(Register) 완전한 관리가 가능하다. 외에도 간편한 Linked서버를 이용하는 방식과 OLE-DB를이용해 Open Rowset으로 쉽게 접근이 가능해 진다. 

  • OLTP(On-Line Transaction Processing) OLAP - DSS(Decision Support System) 같이 다양하게 요구되는 응용프로그램을 지원하도록 설계되었다
    OLTP 특정한 축상에(보통 시간축) 데이터를 일관된 방식으로 저장한다. 문제는 아주 방대한 자료가 동시 접속 유저에 의해 처리된다는점이다. 아울러 OLAP(DSS) 이러한 OLTP 데이터를 분석하기 위한툴이다

  • DBMS 의한 데이터 무결성의 지원이다. 트랜젝션 기반으로 완전한 무결성을 구축 가능하다.

  • 서버 데이터베이스의 일관성과 복구를 지원하는 트랜젝션 관리하고, 다양한 트랜젝션 처리방식을지원 한다.

  • 여러 단계의 보안 레벨을 지원한다.

  • 다양한 분산 데이터 처리기능의 지원한다.
    • 정보의 배포를 위한 내장된 복제 기능이 있고, 적시에 정확한 정보를 필요한 사람에게 제공한다상당히 범용적인 복제 전략을 구축이 가능해지며, 대용량 데이터베이스를 지원한다.

  • 응용 프로그램 개발을 위한 다양한 인터페이스를 제공한다.
    • ODBC 
    • DB - Library
    • Open Data Service

오늘은 데이터베이스에 관해 알아보기 전에 간략한 내용만 정리해서 올리도록 하겠습니다. 우선 오늘은 데이터베이스와 종류, SQL, 그리고 SQL의 5계명에 대해 간략히 얘기할 것입니다. 그리고 다음 시간에는 오라클, MYSQL, MSSQL의 특징과 본격적인 데이터 베이스 중에서 SQL문에 대한 공부를 할 것입니다.
  • 데이터베이스란
  1. 어떤 규칙이나 목적을 기초로 하여 관리되는 데이터의 모음
  2. 여러 사람이 원하는 정보를 얻기 위한 데이터를 한 곳에서 관리할 수 있도록 모아 둔 것


  • 데이터베이스의 종류



데이터베이스의 종류에는 계층형, 관계형, 네트워크형이 있다. 이 중에서도 현재 가장 널리 사용되는 것은 관계형 데이터 베이스이다. 관계형 데이터 베이스에서는 몇 개의 항목을 조합하여 데이터를 표 형식으로 관리한다. 이런 시스템을 관계형 데이터베이스 관리시스템, RDBMS (Relational DataBase Management System)이라고 하며, 관계형 데이터베이스 관리 시스템을 관리하는 데이터 모음을 관계형 데이터베이스, RDB (Relational DataBase)라고 한다.

 

  • SQL이란 무엇인가?

SQLStructured Query Language로 한마디로 설명한다면 "관계형 데이터베이스 관리 시스템과 대화하기 위한 언어"라고 할 수 있다. 즉, 관계형 데이터베이스 관리 시스템에게 "00라는 데이터를 주세요" 등의 요구를 할 때, SQL을 사용하여 요청하는 것이다. 이렇게 데이터베이스 관리 시스템에게 요청하는 것을 질의, Query라고 한다.

 

  • SQL의 5계명
  1. 원칙적으로 로마자로 기술한다.
  2. 주석 및 ''(작은 따옴표) 안에는 한글을 쓸 수 있다.
  3. '를 표시할 때는 "로 한다.
    문자열 속에 '를 표시하고 싶을 때에는 '를 2번 연속해서 쓴다.
  4. 주석은 /* */ 안에 쓴다.
  5. 예약어에 주의 한다.
    예약어란 SQL에 있어서 특별한 의미를 갖는 키워드이다.