{"id":"https://openalex.org/W2492571455","doi":null,"title":"Defensive Database Programming with SQL Server","display_name":"Defensive Database Programming with SQL Server","publication_year":2010,"publication_date":"2010-05-16","ids":{"openalex":"https://openalex.org/W2492571455","mag":"2492571455"},"language":"en","primary_location":{"id":"pmh:oai:cds.cern.ch:1527739","doi":null,"is_oa":false,"landing_page_url":"http://cds.cern.ch/record/1527739","pdf_url":null,"source":{"id":"https://openalex.org/S4306402195","display_name":"CERN Document Server (European Organization for Nuclear Research)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I67311998","host_organization_name":"European Organization for Nuclear Research","host_organization_lineage":["https://openalex.org/I67311998"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":null},"volume":null,"type":"article","is_traditional":true,"indexed_in":[],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5033846329","display_name":"A. G. Kuznetsov","orcid":null,"observed_orcids":[]},"institutions":[],"countries":[],"is_corresponding":true,"raw_author_name":"A. G. Kuznetsov","raw_affiliation_strings":[],"raw_orcid":null,"affiliations":[]}],"institutions":[],"countries_distinct_count":0,"institutions_distinct_count":0,"corresponding_author_ids":["https://openalex.org/A5033846329"],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":false,"cited_by_count":0,"citation_normalized_percentile":{"value":0.0,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":null,"issue":null,"first_page":null,"last_page":null},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10317","display_name":"Advanced Database Systems and Queries","score":0.6801999807357788,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10317","display_name":"Advanced Database Systems and Queries","score":0.6801999807357788,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T13681","display_name":"Engineering and Information Technology","score":0.14110000431537628,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10430","display_name":"Software Engineering Techniques and Practices","score":0.07429999858140945,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/t-sql","display_name":"T-SQL","score":0.9750000238418579},{"id":"https://openalex.org/keywords/sql-server","display_name":"SQL Server","score":0.9179999828338623},{"id":"https://openalex.org/keywords/database-programming","display_name":"database programming","score":0.7379999756813049},{"id":"https://openalex.org/keywords/database-schema-changes","display_name":"database schema changes","score":0.6370000243186951},{"id":"https://openalex.org/keywords/error-handling","display_name":"error handling","score":0.7319999933242798},{"id":"https://openalex.org/keywords/data-integrity","display_name":"data integrity","score":0.7099999785423279},{"id":"https://openalex.org/keywords/code-reuse","display_name":"code reuse","score":0.48399999737739563},{"id":"https://openalex.org/keywords/database-security","display_name":"database security","score":0.31299999356269836},{"id":"https://openalex.org/keywords/database-tuning","display_name":"database performance tuning","score":0.3840000033378601},{"id":"https://openalex.org/keywords/database-backup-and-recovery","display_name":"database backup and recovery","score":0.45100000500679016},{"id":"https://openalex.org/keywords/database-replication","display_name":"database replication","score":0.382999986410141},{"id":"https://openalex.org/keywords/database-partitioning","display_name":"database partitioning","score":0.4950000047683716},{"id":"https://openalex.org/keywords/database-indexing","display_name":"database indexing","score":0.4300000071525574},{"id":"https://openalex.org/keywords/database-triggers","display_name":"database triggers","score":0.3799999952316284},{"id":"https://openalex.org/keywords/database-constraints","display_name":"database constraints","score":0.5630000233650208},{"id":"https://openalex.org/keywords/database-transactions","display_name":"database transactions","score":0.3230000138282776}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8054677248001099},{"id":"https://openalex.org/C150451098","wikidata":"https://www.wikidata.org/wiki/Q506059","display_name":"SQL injection","level":5,"score":0.621568500995636},{"id":"https://openalex.org/C154420247","wikidata":"https://www.wikidata.org/wiki/Q846619","display_name":"Stored procedure","level":5,"score":0.6195865869522095},{"id":"https://openalex.org/C510870499","wikidata":"https://www.wikidata.org/wiki/Q47607","display_name":"SQL","level":2,"score":0.5749728679656982},{"id":"https://openalex.org/C77088390","wikidata":"https://www.wikidata.org/wiki/Q8513","display_name":"Database","level":1,"score":0.5622807145118713},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5216827392578125},{"id":"https://openalex.org/C167544706","wikidata":"https://www.wikidata.org/wiki/Q360842","display_name":"SQL/PSM","level":5,"score":0.488591730594635},{"id":"https://openalex.org/C141589383","wikidata":"https://www.wikidata.org/wiki/Q644775","display_name":"Data Transformation Services","level":5,"score":0.4766322374343872},{"id":"https://openalex.org/C33882796","wikidata":"https://www.wikidata.org/wiki/Q4826222","display_name":"Autocommit","level":5,"score":0.47389712929725647},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.45923787355422974},{"id":"https://openalex.org/C2778514511","wikidata":"https://www.wikidata.org/wiki/Q1374194","display_name":"Programmer","level":2,"score":0.4383315443992615},{"id":"https://openalex.org/C206384180","wikidata":"https://www.wikidata.org/wiki/Q599380","display_name":"User-defined function","level":5,"score":0.43259143829345703},{"id":"https://openalex.org/C94925161","wikidata":"https://www.wikidata.org/wiki/Q6666854","display_name":"Log shipping","level":4,"score":0.2429429590702057},{"id":"https://openalex.org/C136764020","wikidata":"https://www.wikidata.org/wiki/Q466","display_name":"World Wide Web","level":1,"score":0.2328212559223175},{"id":"https://openalex.org/C194222762","wikidata":"https://www.wikidata.org/wiki/Q114486","display_name":"Query by Example","level":4,"score":0.2141243815422058},{"id":"https://openalex.org/C93996380","wikidata":"https://www.wikidata.org/wiki/Q44127","display_name":"Server","level":2,"score":0.17653349041938782},{"id":"https://openalex.org/C152880691","wikidata":"https://www.wikidata.org/wiki/Q146813","display_name":"Client\u2013server model","level":3,"score":0.09792947769165039},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.08881255984306335},{"id":"https://openalex.org/C164120249","wikidata":"https://www.wikidata.org/wiki/Q995982","display_name":"Web search query","level":3,"score":0.0},{"id":"https://openalex.org/C97854310","wikidata":"https://www.wikidata.org/wiki/Q19541","display_name":"Search engine","level":2,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"pmh:oai:cds.cern.ch:1527739","doi":null,"is_oa":false,"landing_page_url":"http://cds.cern.ch/record/1527739","pdf_url":null,"source":{"id":"https://openalex.org/S4306402195","display_name":"CERN Document Server (European Organization for Nuclear Research)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I67311998","host_organization_name":"European Organization for Nuclear Research","host_organization_lineage":["https://openalex.org/I67311998"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":null},{"id":"mag:2492571455","doi":null,"is_oa":false,"landing_page_url":"https://openlibrary.org/books/OL25562667M/Defensive_database_programming_with_SQL_server","pdf_url":null,"source":null,"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":null}],"best_oa_location":null,"sustainable_development_goals":[],"study_designs":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":0,"referenced_works":[],"related_works":["https://openalex.org/W6930468760","https://openalex.org/W2418053910","https://openalex.org/W4241716178","https://openalex.org/W4251778825","https://openalex.org/W4251822549","https://openalex.org/W4382703829","https://openalex.org/W2183602923","https://openalex.org/W2366386333","https://openalex.org/W619366292","https://openalex.org/W2503342399"],"abstract_inverted_index":{"The":[0,97],"goal":[1,98,104],"of":[2,32,56,66,99,105,123,214,287,296,326,405,408,440,454],"Defensive":[3],"Programming":[4],"is":[5,83,86,108,127,226,237,251,265,290,293,373,377,399,485],"to":[6,13,44,88,91,109,112,129,132,153,170,192,195,211,239,275,337,349,360,430,437,488,498,505],"produce":[7,113,279],"resilient":[8,114,128],"code":[9,24,69,82,84,116,147,179,189,236,267,271],"that":[10,25,61,85,117,155,254,272,410,470],"responds":[11],"gracefully":[12,120],"the":[14,17,64,103,133,158,178,184,196,204,212,222,262,285,294,297,317,323,330,406,479,493],"unexpected.":[15],"To":[16],"SQL":[18,441],"Server":[19],"programmer,":[20],"this":[21,50,78,106,224,283,308,340,393],"means":[22],"T-SQL":[23,68,81,115,513],"behaves":[26],"consistently":[27],"and":[28,40,47,70,74,90,119,126,218,258,261,314,328,355,370,389,425,432,475,487,500,503,508],"predictably":[29],"in":[30,161,176,183,203,417,445,462,512],"cases":[31,122],"unexpected":[33],"usage,":[34],"doesn't":[35],"break":[36],"under":[37],"concurrent":[38],"loads,":[39],"survives":[41],"predictable":[42],"changes":[43,131,194,256],"database":[45,101,134,197,205,412,418],"schemas":[46],"settings.":[48],"Inside":[49],"book,":[51,107],"you":[52,111,473,496],"will":[53,62,190,259,471],"find":[54],"dozens":[55],"practical,":[57,402],"defensive":[58,100,375],"programming":[59,376],"techniques":[60],"improve":[63,489],"quality":[65],"your":[67,483],"increase":[71],"its":[72,490],"resilience":[73],"robustness.":[75,491],"Why":[76],"read":[77],"book?":[79],"Resilient":[80],"designed":[87,238],"last,":[89],"be":[92,181,240,335,347],"safely":[93],"reused":[94],"by":[95],"others.":[96],"programming,":[102],"help":[110,472],"robustly":[118],"handles":[121],"unintended":[124],"use,":[125],"common":[130,193],"environment.":[135],"Too":[136],"often":[137,305],"as":[138,143,145,200,292,421],"developers,":[139],"we":[140,228,380,390],"stop":[141,169],"work":[142],"soon":[144],"our":[146,188,235,288,387],"passes":[148],"a":[149,162,201,209,215,246,351],"few":[150,247],"basic":[151],"tests":[152],"confirm":[154],"it":[156,250,333,345,467],"produces":[157],"'right":[159],"result'":[160],"given":[163],"use":[164],"case.":[165],"We":[166],"do":[167],"not":[168,334,346],"consider":[171],"what":[172,374,382],"other":[173],"possible":[174],"ways":[175],"which":[177,300,482],"might":[180],"used":[182,241],"future,":[185],"or":[186,208,278,311],"how":[187,497,504],"respond":[191],"environment,":[198],"such":[199,255,420],"change":[202,210],"language":[206],"setting,":[207],"nullability":[213],"table":[216],"column,":[217],"so":[219],"on.":[220],"In":[221,464],"short-term,":[223],"approach":[225],"attractive;":[227],"get":[229],"things":[230],"done":[231],"faster.":[232],"However,":[233],"if":[234],"for":[242],"more":[243,353,363],"than":[244],"just":[245],"months,":[248],"then":[249],"very":[252],"likely":[253],"can":[257,383],"occur,":[260],"inevitable":[263],"result":[264],"broken":[266],"or,":[268],"even":[269],"worse,":[270],"silently":[273],"starts":[274],"behave":[276],"differently,":[277],"different":[280],"results.":[281],"When":[282],"happens,":[284],"integrity":[286],"data":[289,455],"threatened,":[291],"validity":[295],"reports":[298],"on":[299,365,481],"critical":[301],"business":[302],"decisions":[303],"are":[304],"based.":[306],"At":[307],"point,":[309],"months":[310],"years":[312],"later,":[313],"long":[315],"after":[316],"original":[318,358],"developer":[319],"has":[320],"left,":[321],"begins":[322],"painstaking":[324],"process":[325],"troubleshooting":[327,341],"fixing":[329],"problem.":[331],"Would":[332,344],"easier":[336],"prevent":[338],"all":[339,378],"from":[342],"happening?":[343],"better":[348],"spend":[350],"little":[352],"time":[354,364],"effort":[356],"during":[357,395],"development,":[359],"save":[361],"considerably":[362],"troubleshooting,":[366],"bug":[367],"fixing,":[368],"retesting,":[369],"redeploying?":[371],"This":[372,397],"about:":[379],"learn":[381],"go":[384],"wrong":[385],"with":[386,401,459],"code,":[388],"proactively":[391,506],"apply":[392],"knowledge":[394],"development.":[396],"book":[398,494],"filled":[400],"realistic":[403],"examples":[404],"sorts":[407],"problems":[409],"beset":[411],"programs,":[413],"including:":[414],"-":[415,428,435,443,447,450,457],"Changes":[416,429,444],"objects,":[419],"tables,":[422],"constraints,":[423],"columns,":[424],"stored":[426],"procedures.":[427],"concurrency":[431],"isolation":[433],"levels.":[434],"Upgrades":[436],"new":[438],"versions":[439],"Server.":[442],"requirements.":[446],"Code":[448],"reuse.":[449],"Problems":[451,458],"causing":[452],"loss":[453],"integrity.":[456],"error":[460],"handling":[461],"T-SQL.":[463],"each":[465],"case,":[466],"demonstrates":[468],"approaches":[469],"understand":[474],"enforce":[476],"(or":[477],"eliminate)":[478],"assumptions":[480],"solution":[484],"based,":[486],"Ultimately,":[492],"teaches":[495],"think":[499],"develop":[501],"defensively,":[502],"identify":[507],"eliminate":[509],"potential":[510],"vulnerabilities":[511],"code.":[514]},"counts_by_year":[],"updated_date":"2026-08-27T14:10:00.468798","created_date":"2016-08-23T00:00:00"}
