읽기 일관성은 쿼리가 시작된 시점을 기준으로 데이터를 일관성 있게 읽어들이는 것을 말한다.

일관성을 높이려면 고립화 수준을 높여야 한다.

고립화란?

- 간단히 4가지 고립화를 설명하겠다 -

레벨 0

트랜잭션에서 처리 중인 아직 커밋되지 않은 데이터를 다른 트랜잭션이 읽는 것을 허용

(Dirty Read, Non-Repeatable Read, Phantom Read 현상 발생)

레벨 1

더티리드 방지 : 트랜잭션이 커밋되어 확정된 데이터만 읽는 것을 허용

대부분의 DBMS가 기본모드로 채택하고 있음

Non-Repeatable Read, Phantom Read 현상은 여전히 발생

오라클은 락을 사용하지 않고 Undo데이터를 제공하는 방식으로 구현

SQL Server 등은 읽기 공유 락을 이용해서 구현

레벨 2

선행 트랜잭션이 읽은 데이터는 트랜잭션이 종료 될 때까지 후행 트랜잭션이 갱신하거나 삭제하는 것을 불허함으로써 같은 데이터를 두번 쿼리했을 때 일관성있는 결과를 리턴

Phantom Read 현상은 여전히 발생

오라클은 for update절을 이용해 구현가능

레벨 3

선행 트랜잭션이 읽은 데이터를 후행 트랜잭션이 갱신하거나 삭제하지 못할 뿐만 아니라 중간에 새로운 레코드를 삽입하는 것도 막아줌

완벽한 읽기 일관성 모드를 제공

'프로그래밍 > MS_SQL' 카테고리의 다른 글

MS SQL 외래키 지정  (0) 2012.09.10
MSSQL 테이블 소유자 변경  (0) 2012.09.05
MSSQL identity 값 초기화  (0) 2012.04.04
Foreign key 설정  (0) 2012.03.14
인터넷서점 모델링  (0) 2012.03.08

주민번호 알고리즘 (내국인, 외국인, 우주인)


등록번호 구분 상세
(1) 주민등록번호 대한민국 국적을 가진자가 만 18세 이상이 되면 자동으로 발급되는 신분확인 증표인 주민등록증에 쓰이는 번호
(2) 외국인등록번호 외국국적을 가진자가 우리나라에 들어와서 90일 이상 체류할 경우 출입국관리사무소에 신고하여 부여받는 번호
(3) 국내거소신고번호 해외에 거주하는 우리나라 동포(외국국적동포 포함)가 우리나라에 90일 이상 체류할 경우 부여받는 번호
(4) 조합주민번호(실명번호) 외국인 등이 외국인등록증 및 재외국민(외국국적동포) 국내거소신고증이 없을 경우 만드는 번호



- (1) 주민등록번호의 부여체계

1. 앞자리 1~6자리 숫자는 태어난 생년월일
2. 뒷자리 1자리 숫자는 출생세기와 성별
1 : 1900년대 태어난 남자
2 : 1900년대 태어난 여자
3 : 2000년대 태어난 남자
4 : 2000년대 태어난 여자
9 : 1800년대 태어난 남자
0 : 1800년대 태어난 여자
3. 뒷자리 2~5자리 숫자는 출생지역조합번호 (본적 고유번호)
4. 뒷자리 6자리 숫자는 출생지역의 같은성 출생신고 순번
5. 뒷자리 7자리 숫자는 주민등록 오류검증번호


- (2), (3) 외국인등록번호 및 국내거소신고번호 부여체계


1. 앞자리 1~6자리 숫자는 태어난 생년월일
2. 뒷자리 1자리 숫자는 출생세기와 성별
5 : 1900년대 태어난 남자
6 : 1900년대 태어난 여자
7 : 2000년대 태어난 남자
8 : 2000년대 태어난 여자
3. 뒷자리 2~3자리 숫자는 등록기관
4. 뒷자리 4~5자리 숫자는 일련번호
5. 뒷자리 6자리 숫자는 등록자구분번호
7 : 외국국적동포
8 : 재외국민
9 : 외국인
6. 뒷자리 7자리 숫자는 오류검증번호


- (3) 외국인등록증 및 재외국민(외국국적동포)국내거소신고증이 없을 경우
조합주민번호(실명번호)



1. 앞자리 1~6자리가 태어난 생년월일
2. 뒷자리 1자리 숫자는 성별
7 : 남자
8 : 여자
3. 뒷자리 2자리 숫자는 국적구분
1 : 미국
2 : 일본
3 : 중국
4 : 기타
4. 뒷자리 3~7자리 숫자는 여권번호(기타 외국인)의 마지막 5자리 숫자

여권번호 예) : J 0 2 4 6 8 9 0
첫번째 자리가 국적(A : 미국, J:일본, E:기타)을 의미함

츌처 ㅣ http://yab11.tistory.com/241

출처 : http://www.cftea.com/c/2009/10/OOXX97QIONHANAF9.asp

 ' Encode된 한글 파일을 Decode해 주는 함수 
 Function UrlDecode(ByVal str)
  Dim B,ub   
  Dim UtfB   
  Dim UtfB1, UtfB2, UtfB3
  Dim i, n, s
  n=0
  ub=0
  For i = 1 To Len(str)
   B=Mid(str, i, 1)
   Select Case B
    Case "+"
     s=s & " "
    Case "%"
     ub=Mid(str, i + 1, 2)
     UtfB = CInt("&H" & ub)
     If UtfB<128 Then
      i=i+2
      s=s & ChrW(UtfB)
     Else
      UtfB1=(UtfB And &H0F) * &H1000   
      UtfB2=(CInt("&H" & Mid(str, i + 4, 2)) And &H3F) * &H40
      UtfB3=CInt("&H" & Mid(str, i + 7, 2)) And &H3F  
      s=s & ChrW(UtfB1 Or UtfB2 Or UtfB3)
      i=i+8
     End If
    Case Else
     s=s & B
   End Select
  Next
  UrlDecode = s
 End Function

MSSQL데이터형식

PARAMTER데이터형식

bigint

adBigint

binary

adBinary

bit

adBoolean

char

adChar

datetime

adDate

decimal

adDecimal

float

adSingle

int

adInteger

money

adCurrency

nchar

adChar

ntext

adLongVarChar

numeric

adNumeric

nvarchar

adVarChar

real

adSingle

smalldatetime

adDate

smallint

adSmallInt

smallmoney

adCurrency

sql_variant

adVariant

text

adLongVarChar

timestamp

adDBTimeStamp

tinyint

adTinyInt

varbinary

adVarBinary

varchar

adVarChar

'프로그래밍 > asp' 카테고리의 다른 글

asp내장함수 모음  (0) 2012.06.27
ASP URLDecode 함수  (0) 2012.05.31
web cache control  (0) 2012.05.24
[MSSQL2008] 테이블을 다시 만들어야 하는 변경 내용 저장 사용 안 함  (0) 2012.05.23
ASP CDO로 메일 보내기  (0) 2012.04.16

HTML
< meta http-equiv="Expires" content="-1"/>
< meta http-equiv="Pragma" content="no-cache"/>
< meta http-equiv="Cache-Control" content="no-cache"/>

ASP
< %
Response.Expires = -1
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "no-cache"
Response.AddHeader "cache-control","no-cache"
%>

PHP
< ?
header("Pragma: no-cache");
header("Cache-Control: no-store, no-cache, must-revalidate");
?>

JSP
< %
response.setDateHeader("Expires", -1);
response.setHeader("Pragma","no-cache");
response.setHeader("Cache-Control","no-store"); file://HTTP 1.0
response.setHeader("Cache-Control","no-cashe"); file://HTTP 1.1
%>

[MSSQL2008] 테이블을 다시 만들어야 하는 변경 내용 저장 사용 안 함

경력관리/개발 2010/04/26 12:00

MSSQL2008 Management Studio를 사용하는 개발자들에게 팁을 하나 주려고 포스팅합니다.
테이블을 생성하고 수정시 이런 경고메세지로 인해서 수정을 못하는 분들이 있을겁니다.

변경 내용을 저장 할수 없습니다. 변경 내뇽을 적용하려면 다음 테이블을
삭제 하고 다시 만들어야 합니다. 다시 만들 수 없는 테이블을 변경
했거나 [테이블을 다시 만들어야 하는 변경 내용 저장 사용 안함 ] 옵션을
설정 했습니다.

MSSQL2008 Management Studio 제약을 걸어놓았더군요. ms에서 왜 그런지는
잘 모르겠구요. 해결 방법은 아래와 같이 해주시면 됩니다.
Management Studio > 도구 > 옵션 > <테이블을 다시 만들어야 하는 변경 내용 저장 사용 안함>
항목을 체크해제 해주시면 됩니다. 아주 간단하죠.

사용자 삽입 이미지

옵션 : 테이블을 다시 만들어야 하는 변경 내용 저장 사용 안 함
테이블을 다시 만들어야 하는 변경 내용을 사용자가 저장할 수 없게 만듭니다.
다음 동작을 수행하려면 테이블을 다시 만들어야 할 수 있습니다.
1. 테이블의 중간에 새 열 추가
2. 열 삭제
3. 열의 Null 허용 여부 변경
4. 열의 순서 변경
5. 열의 데이터 형식 변경
위 경우에 옵션을 제한하네요..

기타 옵션은 아래 링크에서 확인하세요.
http://msdn.microsoft.com/ko-kr/library/ms188490.aspx

 

'프로그래밍 > asp' 카테고리의 다른 글

asp procesure parameter 형식  (0) 2012.05.28
web cache control  (0) 2012.05.24
ASP CDO로 메일 보내기  (0) 2012.04.16
asp DOM 파서  (0) 2011.12.13
수동 트랜잭션 모드 연결 오류  (0) 2011.10.06

분모가 0이되어서 발생하는 문제.
 
당연히 분모가 0이 안되게 하면 되지만, 데이터의 정확성을 위해서는 0도 들어올 수 있어야 하는데
 
그럴때는 아래와 같이 NVL과 DECODE로 해결할 수 있습니다.

 

SELECT NVL(분자 / DECODE(분모, 0, NULL, 분모), 0) FROM 테이블;

크롬에서 같은 소스에 같은 구글 커넥션을 맺는데 window.close가 안 먹힐 때가 있다.

이건 크롬 버그 같은데 다음과 같이 해결하면 된다.


window.open('','_self');

window.close();


이렇게 써줘야 한다.


ex)

1)

function closeMe(){

var win=window.open("","_self");

win.close();

}

2)
<a href="javascript:window.open('','_parent','');window.close();">

Close this window</a>




=============================================================

다른 예

function windowClose()
{
if (/MSIE/.test(navigator.userAgent))
{
//Explorer 8이상일때
if(navigator.appVersion.indexOf("MSIE 8.0")>=0)
{
window.opener='Self';
window.open('','_parent','');
window.close();
}
//Explorer 7이상일때
else if(navigator.appVersion.indexOf("MSIE 7.0")>=0)
{
window.open('about:blank','_self').close();
}
//Explorer 7미만일때
else
{
window.opener = self;
self.close();
}
}
}

+ Recent posts